Index: trunk/eCard/eCardMVC/Platnosci/Controllers/MerchantController.cs
===================================================================
--- trunk/eCard/eCardMVC/Platnosci/Controllers/MerchantController.cs (revision 866)
+++ trunk/eCard/eCardMVC/Platnosci/Controllers/MerchantController.cs (revision 868)
@@ -28,6 +28,7 @@
         public const string CARDS = "CARDS";            //obs³uga tylko kart p³atniczych
         public const string KOD_POLSKA = "616";         //kod kraju Akceptanta - Polska
-        public const string KODOWANIE = "ISO-8859-2"; 
+        public const string KODOWANIE = "ISO-8859-2";
 
+        private string merchantId;
         private readonly PlatnosciDataContext _context;
         private readonly IRepositoryPE _rep;
@@ -44,6 +45,4 @@
             language = _func.setLanguage(language);
 
-            PlatnosciEcard new_platnosc = new PlatnosciEcard();
-
             int id1 = Convert.ToInt32(payer.Id_faktury);
             vPlatnosciEcard platnosc = _context.FindInvoiceById(id1).SingleOrDefault();
@@ -55,34 +54,14 @@
                 return View("Error1", errorViewData);
             }
-
-            new_platnosc.IDFaktury = id1;
-            new_platnosc.ORDERDESCRIPTION = platnosc.Faktura_Numer;
-            new_platnosc.nip = platnosc.nip;
-            new_platnosc.nrZlecenia = "";
-
+            
             Waluta waluta = _func.setAmount(platnosc);
-            new_platnosc.AMOUNT = waluta.Amount;
-            new_platnosc.CURRENCY = waluta.Currency;
-
-            new_platnosc.SESSIONID = Session.SessionID;
-            new_platnosc.NAME = payer.FirstName;
-            new_platnosc.SURNAME = payer.LastName;
-            new_platnosc.AUTODEPOSIT = true;
-            new_platnosc.LANGUAGE = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName.ToUpper(); //"PL";
-            
-            new_platnosc.CHARSET = KODOWANIE;
-            new_platnosc.COUNTRY = KOD_POLSKA;  
-            new_platnosc.JS = true;
-            new_platnosc.PAYMENTTYPE = CARDS;
-            new_platnosc.Data = DateTime.Now;
-            new_platnosc.Status = null;
-            new_platnosc.Status_data = null;
+            var newPayment = InitNewPayment(id1, platnosc, waluta, payer );            
 
             string systemKs = platnosc.SystemKsiegowyId.ToString();
 
-            bool createPayment = CreateNewPayment(new_platnosc);
+            bool createPayment = AddNewPayment(newPayment);
             if (createPayment == false) return View("Error");
 
-            string hash = GetHash(new_platnosc, systemKs);
+            string hash = GetHash(newPayment, systemKs);
 
             hash = hash.Replace("\n","");
@@ -91,31 +70,40 @@
                 return View("Error"); //nie mo¿na po³¹czyæ siê z serverem p³atnoci. Proszê spróbowaæ jeszcze raz.
             }
+            if (platnosc.SystemKsiegowyId == 1)
+                merchantId = "170906000";
+            else
+                merchantId = "171485000";
 
-            var merchantViewData = new MerchantViewData();
-            merchantViewData.nowaPlatnosc = new_platnosc;
-            /*if (platnosc.SystemKsiegowyId == 1)
-                 merchantViewData.merchantId = "170906000";
-            else
-                merchantViewData.merchantId = "171485000";
+            string link = ConfigurationManager.AppSettings["StatusLink"];
+            string LinkFail = link + "?status=fail";
+            string LinkOk = link + "?status=ok";
 
-            merchantViewData.Hash = hash;
-            string link = ConfigurationManager.AppSettings["StatusLink"];
-            merchantViewData.LinkFail = link + "?status=fail";
-            merchantViewData.LinkOk = link + "?status=ok"*/
-
-            //wartosci testowe
-            merchantViewData.nowaPlatnosc.ORDERNUMBER = 4;
-            merchantViewData.nowaPlatnosc.ORDERDESCRIPTION = "22";
-            merchantViewData.nowaPlatnosc.AMOUNT = 300;
-            merchantViewData.nowaPlatnosc.CURRENCY = "985";
-            merchantViewData.nowaPlatnosc.SESSIONID = "";
-            merchantViewData.merchantId = "171485000";
-            merchantViewData.Hash = hash;
-            merchantViewData.LinkFail = "";
-            merchantViewData.LinkOk = "";
-            
+            var merchantViewData = InitMerchantViewData(newPayment, hash, merchantId, LinkFail, LinkOk);
             return View(merchantViewData);            
         }
-        private bool CreateNewPayment(PlatnosciEcard platnosc)
+        private PlatnosciEcard InitNewPayment(int id, vPlatnosciEcard platnosc, Waluta waluta, Payer payer)
+        {
+            PlatnosciEcard newPayment = new PlatnosciEcard();
+            newPayment.IDFaktury = id;
+            newPayment.ORDERDESCRIPTION = platnosc.Faktura_Numer;
+            newPayment.nip = platnosc.nip;
+            newPayment.nrZlecenia = "";
+            newPayment.AMOUNT = waluta.Amount;
+            newPayment.CURRENCY = waluta.Currency;
+            newPayment.SESSIONID = Session.SessionID;
+            newPayment.NAME = payer.FirstName;
+            newPayment.SURNAME = payer.LastName;
+            newPayment.AUTODEPOSIT = true;
+            newPayment.LANGUAGE = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName.ToUpper(); //"PL";
+            newPayment.CHARSET = KODOWANIE;
+            newPayment.COUNTRY = KOD_POLSKA;
+            newPayment.JS = true;
+            newPayment.PAYMENTTYPE = CARDS;
+            newPayment.Data = DateTime.Now;
+            newPayment.Status = null;
+            newPayment.Status_data = null;
+            return newPayment;
+        }
+        private bool AddNewPayment(PlatnosciEcard platnosc)
         {
             if (platnosc != null)
@@ -126,24 +114,41 @@
             return false;
         }
+        private MerchantViewData InitMerchantViewData(PlatnosciEcard newPayment, string hash, string Id, string LinkFail, string LinkOk)
+        {
+            MerchantViewData merchantViewData = new MerchantViewData();
+            merchantViewData.nowaPlatnosc = newPayment;
+            merchantViewData.Hash = hash;
+            merchantViewData.merchantId = Id;
+            merchantViewData.LinkFail = LinkFail;
+            merchantViewData.LinkOk = LinkOk;
+            
+            //wartosci testowe
+            merchantViewData.nowaPlatnosc.ORDERNUMBER = 4;
+            merchantViewData.nowaPlatnosc.ORDERDESCRIPTION = "22";
+            merchantViewData.nowaPlatnosc.AMOUNT = 300;
+            merchantViewData.nowaPlatnosc.CURRENCY = "985";
+            merchantViewData.nowaPlatnosc.SESSIONID = "";
+            merchantViewData.merchantId = "171485000";
+            merchantViewData.LinkFail = "";
+            merchantViewData.LinkOk = "";
+            return merchantViewData;
+        }
         private string GetHash(PlatnosciEcard p, string ks)
         {
-            //PlatnosciEcard platnosc = _rep.FindOne(i => i.ORDERDESCRIPTION == p.ORDERDESCRIPTION && i.IDFaktury == p.IDFaktury && i.Data == p.Data);
-           // PlatnosciEcard platnosc = _rep.FindOne(i => i.ORDERNUMBER == 28726);
-
             string strResponse;
-            //string adres = "https://pay.ecard.pl/servlet/HS?orderNumber="+p.ORDERNUMBER;
-            string adres = "https://pay.ecard.pl/servlet/HS?orderNumber=4";
+            /*PlatnosciEcard platnosc = _rep.FindOne(i => i.ORDERDESCRIPTION == p.ORDERDESCRIPTION && i.IDFaktury == p.IDFaktury && i.Data == p.Data);
+            string adres = "https://pay.ecard.pl/servlet/HS?orderNumber="+p.ORDERNUMBER;
             HttpWebRequest req = (HttpWebRequest)WebRequest.Create(adres);
-
-            /*
             string dane = "&orderDescription=&amount=" + platnosc.AMOUNT;
             dane += "&currency=" + platnosc.CURRENCY;
             if (ks == "1") dane += "&merchantId=171485000&password=ashSeth2";
-                else dane += "&merchantId=170906000&password="; */
-           
+                else dane += "&merchantId=170906000&password=JaYpqfs0"; */
+
             //dane testowe
+            string adres = "https://pay.ecard.pl/servlet/HS?orderNumber=4";
+            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(adres);
             string dane = "&orderDescription=&amount=300&currency=985&merchantId=171485000&password=ashSeth2";                
+            
             byte[] bdata = System.Text.ASCIIEncoding.ASCII.GetBytes(dane);
-
             req.Method = "POST";
             req.ContentType = "application/x-www-form-urlencoded";
