Index: branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/HomeController.cs
===================================================================
--- branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/HomeController.cs (revision 866)
+++ branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/HomeController.cs (revision 939)
@@ -1,7 +1,3 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Web;
-using System.Web.Mvc;
+﻿using System.Web.Mvc;
 
 namespace Platnosci.Controllers
Index: branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/AccountController.cs
===================================================================
--- branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/AccountController.cs (revision 895)
+++ branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/AccountController.cs (revision 939)
@@ -1,27 +1,18 @@
 ﻿using System;
 using System.Linq;
-using System.Text;
 using System.Web.Mvc;
 using System.Web.Security;
-using System.Collections.Generic;
 using Platnosci.Core.Linq;
 using Platnosci.Models;
-using System.Globalization;
-using System.Threading;
 using Platnosci.Core.Interface;
-using System.Resources;
-using Platnosci.Core;
 
 namespace Platnosci.Controllers
-{  
-
+{
     [HandleError]
     public class AccountController : Controller
     {
+        private readonly IRepository<vPlatnosciEcard> _repository;
+        private readonly FunkcjePlatnosci _funkcjePlatnosci;
 
-        private readonly IRepository<vPlatnosciEcard> _repository;
-        private readonly PlatnosciDataContext _context;
-        private FunkcjePlatnosci _func;
-                
         public IFormsAuthentication FormsAuth
         {
@@ -34,19 +25,17 @@
             _repository = new Repository<vPlatnosciEcard>(new DataContext1());
             FormsAuth = new FormsAuthenticationService();
-            _context = new PlatnosciDataContext();
-            _func = new FunkcjePlatnosci();
+            _funkcjePlatnosci = new FunkcjePlatnosci();
         }
 
-        public AccountController(IFormsAuthentication formsAuth, IRepository<vPlatnosciEcard> repository, PlatnosciDataContext context, FunkcjePlatnosci func)
+        public AccountController(IFormsAuthentication formsAuth, IRepository<vPlatnosciEcard> repository, FunkcjePlatnosci func)
         {
             _repository = repository;
             FormsAuth = formsAuth ?? new FormsAuthenticationService();
-            _context = context;
-            _func = func;
+            _funkcjePlatnosci = func;
         }
 
         public ActionResult LogOn(string language)
         {
-            language = _func.setLanguage(language);
+            _funkcjePlatnosci.setLanguage(language);
             return View();
         }
@@ -55,20 +44,17 @@
         [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings",
             Justification = "Needs to take same parameter type as Controller.Redirect()")]
-        public ActionResult LogOn(string nip, string numer_faktury, string returnUrl, string language)
+        public ActionResult LogOn(string nip, string numerFaktury, string returnUrl, string language)
         {
-
-            language = _func.setLanguage(language);
-            vPlatnosciEcard platnosc = new vPlatnosciEcard();    
-            if (!ValidateLogOn(nip, numer_faktury))
+            _funkcjePlatnosci.setLanguage(language);
+            var platnosc = new vPlatnosciEcard();
+            if (!ValidateLogOn(nip, numerFaktury))
             {
                 return View();
             }
-            else
-            {
-                var Login = _repository.FindInvoiceByNipNumber(nip, numer_faktury).SingleOrDefault();
-                platnosc = Login;
-                if (platnosc == null) return View();
-            }
-            _func.SetUserLogger(nip, numer_faktury);
+            
+            var login = _repository.FindInvoiceByNipNumber(nip, numerFaktury).SingleOrDefault();
+            platnosc = login;
+            if (platnosc == null) return View();
+            _funkcjePlatnosci.SetUserLogger(nip, numerFaktury);
 
             FormsAuth.SignIn(nip, false);
@@ -78,6 +64,8 @@
                 return Redirect(returnUrl);
             }
-            else return RedirectToAction("Show", "Platnosc", new { id = platnosc.ID_faktury });         
+            
+            return RedirectToAction("Show", "Platnosc", new { id = platnosc.ID_faktury });
         }
+
         public ActionResult LogOff()
         {
@@ -86,24 +74,24 @@
         }
 
-        private bool ValidateLogOn(string nip, string numer_faktury)
+        private bool ValidateLogOn(string nip, string numerFaktury)
         {
             if (String.IsNullOrEmpty(nip))
             {
-                string err_nip = HttpContext.GetGlobalResourceObject("tlumaczenia", "err_nip").ToString();
-                ModelState.AddModelError("nip", err_nip);
+                var errNip = HttpContext.GetGlobalResourceObject("tlumaczenia", "err_nip").ToString();
+                ModelState.AddModelError("nip", errNip);
             }
-            if (String.IsNullOrEmpty(numer_faktury))
+            if (String.IsNullOrEmpty(numerFaktury))
             {
-                string err_faktura = HttpContext.GetGlobalResourceObject("tlumaczenia", "err_faktura").ToString();
-                ModelState.AddModelError("numer_faktury", err_faktura);
+                var errFaktura = HttpContext.GetGlobalResourceObject("tlumaczenia", "err_faktura").ToString();
+                ModelState.AddModelError("numerFaktury", errFaktura);
             }
             if (ModelState.IsValid)
             {
-                bool DaneOk = _repository.Exists(u => u.Faktura_Numer == numer_faktury && u.nip == nip);
-                if (DaneOk == false)
+                var daneOk = _repository.Exists(u => u.Faktura_Numer == numerFaktury && u.nip == nip);
+                if (daneOk == false)
                 {
-                    string err_logowanie = HttpContext.GetGlobalResourceObject("tlumaczenia", "err_logowanie").ToString();
-                    ModelState.AddModelError("_FORM", err_logowanie);
-                }               
+                    var errLogowanie = HttpContext.GetGlobalResourceObject("tlumaczenia", "err_logowanie").ToString();
+                    ModelState.AddModelError("_FORM", errLogowanie);
+                }
             }
             return ModelState.IsValid;
Index: branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/MerchantController.cs
===================================================================
--- branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/MerchantController.cs (revision 895)
+++ branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/MerchantController.cs (revision 939)
@@ -1,15 +1,5 @@
 using System;
-using System.Text;
 using System.Linq;
-using System.Web;
-using System.Web.UI;
-
-using System.Web.UI.WebControls;
-using System.Web.UI.WebControls.WebParts;
-using System.Web.UI.HtmlControls;
-using System.Web.Configuration;
 using System.Web.Mvc;
-using System.Web.Mvc.Ajax;
-using System.Collections.Generic;
 using Platnosci.Models;
 using Platnosci.Core.Linq;
@@ -29,66 +19,72 @@
         public const string KOD_POLSKA = "616";         //kod kraju Akceptanta - Polska
         public const string KODOWANIE = "ISO-8859-2";
-        private int ORDERNUMBER = 122;
+        public const string HASH_ERROR_INFO = "payment not exist";
 
-        private string merchantId;
-        private readonly PlatnosciDataContext _context;
-        private readonly IRepository<PlatnosciEcard> _rep;
-        private FunkcjePlatnosci _func;
+        private readonly IRepository<vPlatnosciEcard> _repVPayment;
+        private readonly IRepository<PlatnosciEcard> _repPayment; 
+        private readonly FunkcjePlatnosci _funkcjePlatnosci;
+        private readonly ITranslateManager _translateManager;
 
         public MerchantController()
-        {   
-            _rep = new Repository<PlatnosciEcard>(new DataContext1());
-            _context = new PlatnosciDataContext();
-            _func = new FunkcjePlatnosci();
+        {
+            _repVPayment = new Repository<vPlatnosciEcard>(new DataContext1());
+            _repPayment = new Repository<PlatnosciEcard>(new DataContext1());
+            _funkcjePlatnosci = new FunkcjePlatnosci();
+            _translateManager = new Translation();
         }
+
         public ActionResult Merchant(Payer payer, string language)
         {
             System.Diagnostics.Debug.WriteLine("MerchantController:Merchant:" + language);
-            language = _func.setLanguage(language);
+            language = _funkcjePlatnosci.setLanguage(language);
 
-            int id1 = Convert.ToInt32(payer.Id_faktury);
-            vPlatnosciEcard platnosc = _rep.FindInvoiceById(id1).SingleOrDefault();
+            var id1 = Convert.ToInt32(payer.Id_faktury);
+            var platnosc = _repVPayment.Find(p => p.ID_faktury == id1).SingleOrDefault();
                  
-            if (platnosc == null)
-            {
-                ErrorViewData errorViewData = _func.InitErrorViewData(HttpContext.GetGlobalResourceObject("tlumaczenia", "brakdanych").ToString());
-                return View("Error1", errorViewData);
-            }
-            else if (!_func.UserIdentity(platnosc, ControllerContext.HttpContext.User.Identity.Name))
-            {
-                ErrorViewData errorViewData = _func.InitErrorViewData(HttpContext.GetGlobalResourceObject("tlumaczenia", "weryfikacja").ToString());
-                return View("Error1", errorViewData);
-            }
+            if (platnosc == null) 
+                return View("Error1", IsError("brakdanych", 0));
             
-            Waluta waluta = _func.setAmount(platnosc);
+            if (!_funkcjePlatnosci.UserIdentity(platnosc, ControllerContext.HttpContext.User.Identity.Name))
+                return View("Error1", IsError("weryfikacja", 0));           
+
+            var waluta = _funkcjePlatnosci.setAmount(platnosc);
             var newPayment = InitNewPayment(id1, platnosc, waluta, payer );            
 
-            string systemKs = platnosc.SystemKsiegowyId.ToString();
+            var systemKs = platnosc.SystemKsiegowyId.ToString();
 
-            bool createPayment = AddNewPayment(newPayment);
-            if (createPayment == false) return View("Error");
+            var createPayment = AddNewPayment(newPayment);
+            
+            if (createPayment == false)
+                return View("Error1", IsError("error_hash", payer.Id_faktury));
 
-            string hash = GetHash(newPayment, systemKs);
+            var merchant = getMerchantInfo(systemKs);
+           
+            var hash = GetHash(newPayment, merchant);
             hash = hash.Replace("\n","");
-            if (hash == BAD_HASH  || hash == "" ) return View("Error");
+          
+            if (hash == BAD_HASH || hash == "" || hash == HASH_ERROR_INFO)
+                return View("Error1", IsError("error_hash", payer.Id_faktury));
 
-            if (systemKs == "1") merchantId = "170906000";
-                else merchantId = "171485000";
+            //przeslanie w linku ordernumber potrzebnego do wyswietlenia potwierdzenia
+            var orderek = _repPayment.GetOrdernumber(newPayment.ORDERDESCRIPTION, newPayment.IDFaktury, newPayment.Data);
 
-            string LinkFail = ConfigurationManager.AppSettings["Strona"];
-            LinkFail += "/" + language + ConfigurationManager.AppSettings["LinkFail"];
-            LinkFail += "/" + newPayment.IDFaktury;
+            var linkFail = ConfigurationManager.AppSettings["Strona"];
+            linkFail += "/" + language + ConfigurationManager.AppSettings["LinkFail"];
+            linkFail += "/" + newPayment.IDFaktury + "?o=" + orderek;
 
-            string LinkOk = ConfigurationManager.AppSettings["Strona"];
-            LinkOk += "/" + language + ConfigurationManager.AppSettings["LinkOk"];
-            LinkOk += "/" + newPayment.IDFaktury; ;
+            var linkOk = ConfigurationManager.AppSettings["Strona"];
+            linkOk += "/" + language + ConfigurationManager.AppSettings["LinkOk"];
+            linkOk += "/" + newPayment.IDFaktury + "?o=" + orderek;
 
-            var merchantViewData = InitMerchantViewData(newPayment, hash, merchantId, LinkFail, LinkOk);
-            wyslij(merchantViewData, hash, merchantId);
-            return View(merchantViewData);            
-        }
+            if (merchant != null && !String.IsNullOrEmpty(merchant.merchntId))
+                SendRequest(newPayment, hash, merchant, linkFail, linkOk);
+            else 
+                return View("Error1", IsError("error_hash", payer.Id_faktury));
+
+            return new EmptyResult();          
+        }        
         private PlatnosciEcard InitNewPayment(int id, vPlatnosciEcard platnosc, Waluta waluta, Payer payer)
         {
-            PlatnosciEcard newPayment = new PlatnosciEcard();
+            var newPayment = new PlatnosciEcard();
             newPayment.IDFaktury = id;
             newPayment.ORDERDESCRIPTION = platnosc.Faktura_Numer;
@@ -111,72 +107,78 @@
             return newPayment;
         }
+        
         private bool AddNewPayment(PlatnosciEcard platnosc)
         {
             if (platnosc != null)
             {                
-               // _rep.Insert(platnosc);
+                _repPayment.Insert(platnosc);
                 return true;
             }
             return false;
         }
-        private MerchantViewData InitMerchantViewData(PlatnosciEcard newPayment, string hash, string Id, string LinkFail, string LinkOk)
+
+        private string GetHash(PlatnosciEcard p, Merchant merchant)
         {
-            MerchantViewData merchantViewData = new MerchantViewData();
-            merchantViewData.nowaPlatnosc = newPayment;
-            merchantViewData.Hash = hash;
-            merchantViewData.merchantId = Id;
-            merchantViewData.LinkFail = LinkFail;
-            merchantViewData.LinkOk = LinkOk;
-            
-            //wartosci testowe
-            merchantViewData.nowaPlatnosc.ORDERNUMBER = ORDERNUMBER;
-            merchantViewData.nowaPlatnosc.ORDERDESCRIPTION = "222";
-            merchantViewData.nowaPlatnosc.AMOUNT = 300;
-            merchantViewData.nowaPlatnosc.CURRENCY = "985";
-            merchantViewData.nowaPlatnosc.SESSIONID = "ff";
-            merchantViewData.merchantId = "171485000";
-            merchantViewData.LinkFail = "";
-            merchantViewData.LinkOk = "";
-            return merchantViewData;
-        }
-        private string GetHash(PlatnosciEcard p, string ks)
-        {
-            string strResponse;
-            /*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;
+            var platnosc = _repPayment.Find(i => i.ORDERDESCRIPTION == p.ORDERDESCRIPTION && i.IDFaktury == p.IDFaktury && i.Data == p.Data).First();
+
+            if (platnosc == null || merchant == null) return HASH_ERROR_INFO;
+
+            var adres = "https://pay.ecard.pl/servlet/HS?orderNumber=" + platnosc.ORDERNUMBER;
+            var req = (HttpWebRequest)WebRequest.Create(adres);
+            var dane = "&orderDescription=&amount=" + platnosc.AMOUNT;
             dane += "&currency=" + platnosc.CURRENCY;
-            if (ks == "1") dane += "&merchantId=171485000&password=ashSeth2";
-                else dane += "&merchantId=170906000&password=JaYpqfs0"; */
+            dane += string.Format("&merchantId={0}&password={1}", merchant.merchntId, merchant.merchantPassword);
 
-            //dane testowe
-            string adres = "https://pay.ecard.pl/servlet/HS?orderNumber="+ORDERNUMBER;
-            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);
+            var bdata = System.Text.Encoding.ASCII.GetBytes(dane);
             req.Method = "POST";
             req.ContentType = "application/x-www-form-urlencoded";
             req.ContentLength = dane.Length;
 
-            Stream reqStream = req.GetRequestStream();
+            var reqStream = req.GetRequestStream();
             reqStream.Write(bdata, 0, bdata.Length);
             reqStream.Close();
 
-            StreamReader streamResponse = new StreamReader(req.GetResponse().GetResponseStream());
-            strResponse = streamResponse.ReadToEnd();
+            var streamResponse = new StreamReader(req.GetResponse().GetResponseStream());
+            string strResponse = streamResponse.ReadToEnd();
             streamResponse.Close();
                      
             return strResponse;
         }
-        private void wyslij(MerchantViewData m, string hash, string id)
+
+        private void SendRequest(PlatnosciEcard m, string hash, Merchant merchant, string linkok, string linkfail)
         {
-            string adres = "https://pay.ecard.pl/servlet/PSTEST?ORDERDESCRIPTION="+m.nowaPlatnosc.ORDERDESCRIPTION;
-            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(adres);
-            string dane = "&AMOUNT=300&CURRENCY=985&ORDERNUMBER="+ORDERNUMBER+"&NAME="+m.nowaPlatnosc.NAME+"&SURNAME="+m.nowaPlatnosc.SURNAME+"&LANGUAGE=PL&CHARSET=ISO-8859-2";
-            dane += "&COUNTRY=616&PAYMENTTYPE=CARDS&JS=1&HASH=" + hash + "&MERCHANTID=171485000&AUTODEPOSIT=" + m.nowaPlatnosc.AUTODEPOSIT + "&LINKFAIL=";
-            dane += "&LINKOK=&SESSIONID=";
+            var adres = ConfigurationManager.AppSettings["eCard.Url"] + "?ORDERDESCRIPTION=" + m.ORDERDESCRIPTION;
+
+            var dane = "&AMOUNT=" + m.AMOUNT + "&CURRENCY=" + m.CURRENCY + "&ORDERNUMBER=" + m.ORDERNUMBER;
+            dane += "&NAME=" + m.NAME + "&SURNAME=" + m.SURNAME + "&LANGUAGE=" + m.LANGUAGE + "&CHARSET=ISO-8859-2";
+            dane += "&COUNTRY=616&PAYMENTTYPE=CARDS&JS=1&HASH=" + hash + "&MERCHANTID=" + merchant.merchntId + "&AUTODEPOSIT=" + m.AUTODEPOSIT;
+            dane += "&LINKFAIL=" + linkfail + "&LINKOK=" + linkok + "&SESSIONID=" + m.SESSIONID;
             Response.Redirect(adres + dane);
+        }
+        public ErrorViewData IsError(string errortxt, int idFaktury)
+        {
+            if (errortxt == "brakdanych")
+                errortxt = _translateManager.Translate("tlumaczenia", "brakdanych");
+            else if (errortxt == "weryfikacja")
+                errortxt = _translateManager.Translate("tlumaczenia", "weryfikacja");
+            else if (errortxt == "error_hash")
+                errortxt = _translateManager.Translate("tlumaczenia", "error_hash");
+
+            return _funkcjePlatnosci.InitErrorViewData(errortxt, idFaktury);
+        }
+        public Merchant getMerchantInfo( string systemKs)
+        {
+            var merchant = new Merchant();
+            if (systemKs == "1")
+            {
+                merchant.merchntId = "171485000";
+                merchant.merchantPassword = "ashSeth2";
+            }
+            else
+            {
+                merchant.merchntId = "170906000";
+                merchant.merchantPassword = "JaYpqfs0";
+            }              
+            return merchant;
         }
     }
Index: branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/PlatnoscController.cs
===================================================================
--- branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/PlatnoscController.cs (revision 895)
+++ branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/PlatnoscController.cs (revision 939)
@@ -1,18 +1,8 @@
 using System;
 using System.Linq;
-using System.Text;
-using System.Web;
 using System.Web.Mvc;
-using System.Web.Mvc.Ajax;
 using Platnosci.Models;
 using Platnosci.Core.Linq;
 using Platnosci.Core.Interface;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Web.UI;
-using System.Threading;
-using System.Data.Linq;
-using System.Web.Configuration;
-using System.Web.Routing;
 
 namespace Platnosci.Controllers
@@ -23,52 +13,46 @@
     {
         public const string ISPAID = "payment_deposited";       //transakcja potwierdzona do rozliczenia
-        private readonly PlatnosciDataContext _context;
-        private readonly IDataContext _context1;
-        private readonly IRepository<PotwierdzeniaEcard> _rep;
-        private readonly IRepository<PlatnosciEcard> _repPl;
-        private FunkcjePlatnosci _func;
-        private string weryfikacja;
-        private string brakdanych;
-        private string zaplacono;
-        private string err_imie;
-        private string err_nazwisko;
-        private int test = 0;
-       
+        private readonly IRepository<vPlatnosciEcard> _repVPayment;       
+        private readonly IRepository<PlatnosciEcard> _repPayment;
+        private readonly IRepository<PotwierdzeniaEcard> _repConfirm;
+        private readonly ITranslateManager _translateManager;
+        private readonly FunkcjePlatnosci _funkcjePlatnosci;
+              
         public PlatnoscController()
         {
-            _context = new PlatnosciDataContext();
-            _rep = new Repository<PotwierdzeniaEcard>(new DataContext1());
-            _repPl = new Repository<PlatnosciEcard>(new DataContext1());
-            _func = new FunkcjePlatnosci();
-                      
-        }
-        public PlatnoscController(IDataContext datacontext, int czy_test)
-        {
-            _rep = new Repository<PotwierdzeniaEcard>(datacontext);
-            _repPl = new Repository<PlatnosciEcard>(datacontext);
-            _context1 = datacontext;
-            _func = new FunkcjePlatnosci();
-            test = czy_test;
+            _repVPayment = new Repository<vPlatnosciEcard>(new DataContext1());
+            _repPayment = new Repository<PlatnosciEcard>(new DataContext1());
+            _repConfirm = new Repository<PotwierdzeniaEcard>(new DataContext1());
+            _funkcjePlatnosci = new FunkcjePlatnosci();
+            _translateManager = new Translation();         
+        }
+        public PlatnoscController(IRepository<vPlatnosciEcard> repVPayment, IRepository<PlatnosciEcard> repPayment, IRepository<PotwierdzeniaEcard> repConfirm, ITranslateManager translate)
+        {
+            _repVPayment = repVPayment;
+            _repPayment = repPayment;
+            _repConfirm = repConfirm;
+            _funkcjePlatnosci = new FunkcjePlatnosci();
+            _translateManager = translate;
         }
         public ActionResult Show(string id, string language)
         {
-            language = _func.setLanguage(language);
-            ustawTlumaczenia(test);
-            int id1 = ConvertId(id);
-
-            vPlatnosciEcard platnosc = _rep.FindInvoiceById(id1).SingleOrDefault();
-            if (!String.IsNullOrEmpty(Iserror(platnosc).error)) return View("Error1", Iserror(platnosc));
-
-            string kwota = "";
-            kwota = _func.BruttoToString(platnosc.Brutto, platnosc.waluta_brutto, platnosc.waluta_miano);
-            var payer = InitPayer("", "", platnosc.ID_faktury);
+            _funkcjePlatnosci.setLanguage(language);
+            var id1 = ConvertId(id);
+
+            var platnosc = _repVPayment.Find(p => p.ID_faktury == id1).SingleOrDefault();
+            if (!String.IsNullOrEmpty(IsError(platnosc).Error)) return View("Error1", IsError(platnosc));
+
+            var kwota = _funkcjePlatnosci.BruttoToString(platnosc.Brutto, platnosc.waluta_brutto, platnosc.waluta_miano);
+            
+            var payer = InitPayer(platnosc.ID_faktury);
+            
             var invoiceDeatailsViewData = InitInvoiceDetailsViewData(platnosc, payer, "", kwota);  
 
-            var tablica_potwierdzenia = _rep.FindItemsByIdFaktury(id1);
-            if (tablica_potwierdzenia.Count > 0) //platnosc za fakture zostala uregulowana
-            {
-                string data_zaplaty = String.Format("{0:dd-MM-yyyy}", tablica_potwierdzenia[0].AUTHTIME);
-                invoiceDeatailsViewData.info = String.Format(zaplacono, platnosc.Faktura_Numer, data_zaplaty);
-                invoiceDeatailsViewData.termin = data_zaplaty;
+            var tablicaPotwierdzenia = _repConfirm.FindItemsByIdFaktury(id1);
+            if (tablicaPotwierdzenia.Count > 0) //platnosc za fakture zostala uregulowana
+            {
+                var dataZaplaty = String.Format("{0:dd-MM-yyyy}", tablicaPotwierdzenia[0].AUTHTIME);
+                invoiceDeatailsViewData.info = String.Format(_translateManager.Translate("tlumaczenia","zaplacono"), platnosc.Faktura_Numer, dataZaplaty);
+                invoiceDeatailsViewData.termin = dataZaplaty;
                 return View("Paid", invoiceDeatailsViewData);
             }       
@@ -79,101 +63,116 @@
         public ActionResult Show(Payer payer, string language)
         {
-            language = _func.setLanguage(language);
-            ustawTlumaczenia(test);
-            vPlatnosciEcard platnosc = _rep.FindInvoiceById(payer.Id_faktury).SingleOrDefault();
-            if (!String.IsNullOrEmpty(Iserror(platnosc).error)) return View("Error1", Iserror(platnosc));
+            _funkcjePlatnosci.setLanguage(language);
+            
+            var platnosc = _repVPayment.Find(p => p.ID_faktury == payer.Id_faktury).SingleOrDefault();
+            
+            if (!String.IsNullOrEmpty(IsError(platnosc).Error)) return View("Error1", IsError(platnosc));
             
             if (String.IsNullOrEmpty(payer.FirstName))
             {
-                ModelState.AddModelError("Payer.FirstName", err_imie);
+                ModelState.AddModelError("Payer.FirstName", _translateManager.Translate("tlumaczenia", "err_imieWK"));
             }
             if (String.IsNullOrEmpty(payer.LastName))
             {
-                ModelState.AddModelError("Payer.LastName", err_nazwisko);
+                ModelState.AddModelError("Payer.LastName", _translateManager.Translate("tlumaczenia", "err_nazwiskoWK"));
             }
             if (ModelState.IsValid == false)
             {
-                string kwota = "";
-                kwota = _func.BruttoToString(platnosc.Brutto, platnosc.waluta_brutto, platnosc.waluta_miano); 
+                var kwota = _funkcjePlatnosci.BruttoToString(platnosc.Brutto, platnosc.waluta_brutto, platnosc.waluta_miano); 
                 var viewData = InitInvoiceDetailsViewData(platnosc, payer, "", kwota );
-                return View("Show",viewData);
-            } 
-            if (payer != null)
-            {                
-                System.Diagnostics.Debug.WriteLine("PlatnosciController:Show");
-                return RedirectToAction("Merchant", "Merchant", payer);
-            }                
-            else return View("Error");
-        }
-        public ActionResult Ok(string id, string language)
-        {
-            language = _func.setLanguage(language);
-            ustawTlumaczenia(test);
-            int id1 = ConvertId(id);
-            vPlatnosciEcard platnosc = _rep.FindInvoiceById(id1).SingleOrDefault();
-            if (!String.IsNullOrEmpty(Iserror(platnosc).error)) return View("Error1", Iserror(platnosc));            
+                return View("Show",viewData); 
+            }
+
+            return RedirectToAction("Merchant", "Merchant", payer);
+        }
+
+        public ActionResult Ok(string id, string language, string o)
+        {
+            var order = ConvertId(o);
+            
+            _funkcjePlatnosci.setLanguage(language);
+            
+            var id1 = ConvertId(id);
+            
+            var platnosc = _repVPayment.Find(p => p.ID_faktury == id1).SingleOrDefault();
+            
+            if (!String.IsNullOrEmpty(IsError(platnosc).Error)) return View("Error1", IsError(platnosc));            
             
             var invoiceDeatailsViewData = InitInvoiceDetailsViewData(platnosc, null, "" , "");
+
+            //sprawdzamy czy dla kombinacji ordernumber i idfaktury istnieje platnosc,
+            //jesli tak, to sprawdzamy czy przyszlo potwierdzenie z eCardu.             
+            if (order > 0)
+            {
+                if (CheckConfirm(id1, order) == 0)   //nie ma potwierdzenia z eCardu
+                {
+                    invoiceDeatailsViewData.info = String.Format(_translateManager.Translate("tlumaczenia", "blad1"), invoiceDeatailsViewData.vPlatnosciEcard.Faktura_Numer);
+                }
+                else
+                {
+                    if (CheckConfirm(id1, order) == 2) invoiceDeatailsViewData.info = _translateManager.Translate("tlumaczenia", "weryfikacja");
+                }
+            }
+
             return View(invoiceDeatailsViewData);
         }
         public ActionResult Fail(string id, string language)
         {
-            language = _func.setLanguage(language);
-            ustawTlumaczenia(test);
-            int id1 = ConvertId(id);
-            vPlatnosciEcard platnosc = _rep.FindInvoiceById(id1).SingleOrDefault();
-            if (!String.IsNullOrEmpty(Iserror(platnosc).error)) return View("Error1", Iserror(platnosc));
-            
+            _funkcjePlatnosci.setLanguage(language);
+            var id1 = ConvertId(id);
+            var platnosc = _repVPayment.Find(p => p.ID_faktury == id1).SingleOrDefault();
+            if (!String.IsNullOrEmpty(IsError(platnosc).Error)) return View("Error1", IsError(platnosc));
+
             var invoiceDeatailsViewData = InitInvoiceDetailsViewData(platnosc, null, "", "");
             return View(invoiceDeatailsViewData);
         }
+        public ActionResult Form()
+        {
+            return View();
+        }
         public ActionResult Status()
         {
-            string MERCHANTNUMBER = Request.Form["MERCHANTNUMBER"];
-            int ORDERNUMBER = Convert.ToInt32(Request.Form["ORDERNUMBER"]);
-            string COMMTYPE = Request.Form["COMMTYPE"];
-            string CURRENTSTATE = Request.Form["CURRENTSTATE"];
-            string PREVIOUSSTATE = Request.Form["PREVIOUSSTATE"];
-            bool PAYMENTTYPE = Convert.ToBoolean(Request.Form["PAYMENTTYPE"]);
-            bool EVENTTYPE = Convert.ToBoolean(Request.Form["EVENTTYPE"]);
-            bool PAYMENTNUMBER = Convert.ToBoolean(Request.Form["PAYMENTNUMBER"]);
-            string APPROVALCODE = Request.Form["APPROVALCODE"];
-            string VALIDATIONCODE = Request.Form["VALIDATIONCODE"];
-            string BIN = Request.Form["BIN"];
-            DateTime AUTHTIME = Convert.ToDateTime(Request.Form["AUTHTIME"]);
-            string TYPE = Request.Form["TYPE"];
-            string WITHCVC = Request.Form["WITHCVC"];
-            DateTime DATATRANSMISJI = Convert.ToDateTime(Request.Form["DATATRANSMISJI"]);
-            
-            PotwierdzeniaEcard potwierdzenie = new PotwierdzeniaEcard();
-            potwierdzenie.APPROVALCODE = APPROVALCODE;
-            potwierdzenie.AUTHTIME = AUTHTIME;
-            potwierdzenie.BIN = BIN;
-            potwierdzenie.COMMTYPE = COMMTYPE;
-            potwierdzenie.CURRENTSTATE = CURRENTSTATE;
-            potwierdzenie.DATATRANSMISJI = DATATRANSMISJI;
-            potwierdzenie.EVENTTYPE = EVENTTYPE;
-            potwierdzenie.MERCHANTNUMBER = MERCHANTNUMBER;
-            potwierdzenie.ORDERNUMBER = ORDERNUMBER;
-            potwierdzenie.PAYMENTNUMBER = PAYMENTNUMBER;
-            potwierdzenie.PAYMENTTYPE = PAYMENTTYPE;
-            potwierdzenie.PREVIOUSSTATE = PREVIOUSSTATE;
-            potwierdzenie.TYPE = TYPE;
-            potwierdzenie.VALIDATIONCODE = VALIDATIONCODE;
-            potwierdzenie.WITHCVC = WITHCVC;
-
-            _rep.Insert(potwierdzenie);
-            UpdateStatus(ORDERNUMBER, CURRENTSTATE);
-            return View();
-        }
-        private Payer InitPayer(string FirstName, string LastName, int Id_faktury)
-        {
-            Payer payer = new Payer();
-            payer.FirstName = "";
-            payer.LastName = "";
-            payer.Id_faktury = Id_faktury;
+            var potwierdzenie = new PotwierdzeniaEcard();
+            var content = new ContentResult();
+            try
+            {
+                if (!String.IsNullOrEmpty(Request.Form["APPROVALCODE"])) potwierdzenie.APPROVALCODE = Request.Form["APPROVALCODE"];
+                if (!String.IsNullOrEmpty(Request.Form["AUTHTIME"])) potwierdzenie.AUTHTIME = Convert.ToDateTime(Request.Form["AUTHTIME"]);
+                if (!String.IsNullOrEmpty(Request.Form["BIN"])) potwierdzenie.BIN = Request.Form["BIN"];
+                if (!String.IsNullOrEmpty(Request.Form["COMMTYPE"])) potwierdzenie.COMMTYPE = Request.Form["COMMTYPE"];
+                if (!String.IsNullOrEmpty(Request.Form["CURRENTSTATE"])) potwierdzenie.CURRENTSTATE = Request.Form["CURRENTSTATE"];
+                if (!String.IsNullOrEmpty(Request.Form["DATATRANSMISJI"])) potwierdzenie.DATATRANSMISJI = Convert.ToDateTime(Request.Form["DATATRANSMISJI"]);
+                if (!String.IsNullOrEmpty(Request.Form["EVENTTYPE"])) potwierdzenie.EVENTTYPE = Convert.ToBoolean(Request.Form["EVENTTYPE"]);
+                if (!String.IsNullOrEmpty(Request.Form["MERCHANTNUMBER"])) potwierdzenie.MERCHANTNUMBER = Request.Form["MERCHANTNUMBER"];
+                if (!String.IsNullOrEmpty(Request.Form["ORDERNUMBER"])) potwierdzenie.ORDERNUMBER = Convert.ToInt32(Request.Form["ORDERNUMBER"]);
+                if (!String.IsNullOrEmpty(Request.Form["PAYMENTNUMBER"])) potwierdzenie.PAYMENTNUMBER = Convert.ToBoolean(Request.Form["PAYMENTNUMBER"]);
+                if (!String.IsNullOrEmpty(Request.Form["PAYMENTTYPE"])) potwierdzenie.PAYMENTTYPE = Convert.ToBoolean(Request.Form["PAYMENTTYPE"]);
+                if (!String.IsNullOrEmpty(Request.Form["PREVIOUSSTATE"])) potwierdzenie.PREVIOUSSTATE = Request.Form["PREVIOUSSTATE"];
+                if (!String.IsNullOrEmpty(Request.Form["TYPE"])) potwierdzenie.TYPE = Request.Form["TYPE"];
+                if (!String.IsNullOrEmpty(Request.Form["VALIDATIONCODE"])) potwierdzenie.VALIDATIONCODE = Request.Form["VALIDATIONCODE"];
+                if (!String.IsNullOrEmpty(Request.Form["WITHCVC"])) potwierdzenie.WITHCVC = Request.Form["WITHCVC"];
+
+                _repConfirm.Insert(potwierdzenie);
+
+                if (potwierdzenie.ORDERNUMBER.HasValue)
+                    UpdateStatus(potwierdzenie.ORDERNUMBER.Value, potwierdzenie.CURRENTSTATE);
+
+                content.Content = "OK";                
+            }
+            catch(Exception ex)
+            {
+                content.Content = "FALSE " + ex.Message + " " + ex.GetType();
+            }       
+            
+            return content;
+        }
+
+        private static Payer InitPayer(int idFaktury)
+        {
+            var payer = new Payer {Id_faktury = idFaktury};
             return payer;
         }
-        private InvoiceDetailsViewData InitInvoiceDetailsViewData(vPlatnosciEcard platnosc, Payer payer, string status, string brutto )
+
+        private static InvoiceDetailsViewData InitInvoiceDetailsViewData(vPlatnosciEcard platnosc, Payer payer, string status, string brutto )
         {
             var invoiceDeatailsViewData = new InvoiceDetailsViewData();
@@ -184,59 +183,50 @@
             return invoiceDeatailsViewData;
         }
-        private void ustawTlumaczenia(int test) 
-        {
-            if (test == 0) 
-            {
-                weryfikacja = Resources.tlumaczenia.weryfikacja.ToString();
-                brakdanych = Resources.tlumaczenia.brakdanych.ToString();
-                zaplacono = Resources.tlumaczenia.zaplacono.ToString();
-                err_imie = Resources.tlumaczenia.err_imieWK.ToString();
-                err_nazwisko = Resources.tlumaczenia.err_nazwiskoWK.ToString();
-            }
-        } 
-        public void setWeryfikacja(string value)
-        {
-            this.weryfikacja = value;
-        }
-        public void setBrakDanych(string value)
-        {
-            this.brakdanych = value;
-        }
-        public void setZaplacono(string value)
-        {
-            this.zaplacono = value;
-        }
+
         public int ConvertId(string id)
         {
-            int id1 = 0;
-            try
-            {
-                id1 = (id != null) ? Convert.ToInt32(id) : 0;
-            }
-            catch
-            {
-            }
-            return id1;
-        }
-        public ErrorViewData Iserror(vPlatnosciEcard platnosc)
-        {
-            string errortxt = "";
-            if (platnosc == null) errortxt = brakdanych;
-            else if (!_func.UserIdentity(platnosc, HttpContext.User.Identity.Name)) errortxt = weryfikacja;
-            ErrorViewData errorViewData = _func.InitErrorViewData(errortxt);
-            return errorViewData;
-        }
+            int id1;
+            return Int32.TryParse(id, out id1) ? id1 : 0;
+        }
+
+        public ErrorViewData IsError(vPlatnosciEcard platnosc)
+        {
+            var errortxt = "";
+            
+            if (platnosc == null) 
+                errortxt = _translateManager.Translate("tlumaczenia", "brakdanych");
+            else if (!_funkcjePlatnosci.UserIdentity(platnosc, HttpContext.User.Identity.Name)) 
+                errortxt = _translateManager.Translate("tlumaczenia","weryfikacja");
+
+            return _funkcjePlatnosci.InitErrorViewData(errortxt,0);
+        }
+
         public void UpdateStatus(int ordernumber, string currentstate)
         {
-            PlatnosciEcard platnosc = _repPl.FindOne(ordernumber);
-            if (platnosc != null && currentstate == ISPAID)
-            {
-                platnosc.Status = true;
-                platnosc.Status_data = DateTime.Now;
-                _repPl.SubmitChanges();
-                
-                System.Diagnostics.Debug.WriteLine("IsUpdate");
-            }
-        }               
+            var platnosc = _repPayment.Find(p => p.ORDERNUMBER == ordernumber).SingleOrDefault();
+
+            if (platnosc == null || currentstate != ISPAID) return;
+
+            platnosc.Status = true;
+            platnosc.Status_data = DateTime.Now;
+            _repPayment.SubmitChanges();
+        }
+
+        public int CheckConfirm(int idfaktury, int order)
+        {
+            var pl = _repPayment.Find(p => p.ORDERNUMBER == order && p.IDFaktury == idfaktury).SingleOrDefault();
+
+            if (pl != null)
+            {
+                var confirm = _repConfirm.Find(p => p.ORDERNUMBER == order).FirstOrDefault();
+                if (confirm == null) return 0; //potwierdzenie nie przyszlo z eCardu
+            }
+            else
+            {
+                return 2; //nie ma platnosci o takim idfaktury i ordernumber
+            }
+            
+            return 1;    //potwierdzenie przyszlo z eCardu
+        }  
     }
 }
