Pokaż
Ignoruj:
Data:
2009-12-08 10:09:39 (16 years ago)
Autor:
sylwek
Opis:

re #195 - merged with latest trunk

Lokalizacja:
branches/Emisje
Pliki:
5 zmodyfikowane

Legenda:

Bez zmian
Dodane
Usunięte
  • branches/Emisje

    • Property svn:mergeinfo
      •  

        old new  
        33/branches/ReklamaReorganizacja:568-731 
        44/tags/BazaReklam_1.1.28:831 
        5 /trunk:774-893 
         5/trunk:774-893,896-936 
  • branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/AccountController.cs

    r895 r939  
    11using System; 
    22using System.Linq; 
    3 using System.Text; 
    43using System.Web.Mvc; 
    54using System.Web.Security; 
    6 using System.Collections.Generic; 
    75using Platnosci.Core.Linq; 
    86using Platnosci.Models; 
    9 using System.Globalization; 
    10 using System.Threading; 
    117using Platnosci.Core.Interface; 
    12 using System.Resources; 
    13 using Platnosci.Core; 
    148 
    159namespace Platnosci.Controllers 
    16  
    17  
     10{ 
    1811    [HandleError] 
    1912    public class AccountController : Controller 
    2013    { 
     14        private readonly IRepository<vPlatnosciEcard> _repository; 
     15        private readonly FunkcjePlatnosci _funkcjePlatnosci; 
    2116 
    22         private readonly IRepository<vPlatnosciEcard> _repository; 
    23         private readonly PlatnosciDataContext _context; 
    24         private FunkcjePlatnosci _func; 
    25                  
    2617        public IFormsAuthentication FormsAuth 
    2718        { 
     
    3425            _repository = new Repository<vPlatnosciEcard>(new DataContext1()); 
    3526            FormsAuth = new FormsAuthenticationService(); 
    36             _context = new PlatnosciDataContext(); 
    37             _func = new FunkcjePlatnosci(); 
     27            _funkcjePlatnosci = new FunkcjePlatnosci(); 
    3828        } 
    3929 
    40         public AccountController(IFormsAuthentication formsAuth, IRepository<vPlatnosciEcard> repository, PlatnosciDataContext context, FunkcjePlatnosci func) 
     30        public AccountController(IFormsAuthentication formsAuth, IRepository<vPlatnosciEcard> repository, FunkcjePlatnosci func) 
    4131        { 
    4232            _repository = repository; 
    4333            FormsAuth = formsAuth ?? new FormsAuthenticationService(); 
    44             _context = context; 
    45             _func = func; 
     34            _funkcjePlatnosci = func; 
    4635        } 
    4736 
    4837        public ActionResult LogOn(string language) 
    4938        { 
    50             language = _func.setLanguage(language); 
     39            _funkcjePlatnosci.setLanguage(language); 
    5140            return View(); 
    5241        } 
     
    5544        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", 
    5645            Justification = "Needs to take same parameter type as Controller.Redirect()")] 
    57         public ActionResult LogOn(string nip, string numer_faktury, string returnUrl, string language) 
     46        public ActionResult LogOn(string nip, string numerFaktury, string returnUrl, string language) 
    5847        { 
    59  
    60             language = _func.setLanguage(language); 
    61             vPlatnosciEcard platnosc = new vPlatnosciEcard();     
    62             if (!ValidateLogOn(nip, numer_faktury)) 
     48            _funkcjePlatnosci.setLanguage(language); 
     49            var platnosc = new vPlatnosciEcard(); 
     50            if (!ValidateLogOn(nip, numerFaktury)) 
    6351            { 
    6452                return View(); 
    6553            } 
    66             else 
    67             { 
    68                 var Login = _repository.FindInvoiceByNipNumber(nip, numer_faktury).SingleOrDefault(); 
    69                 platnosc = Login; 
    70                 if (platnosc == null) return View(); 
    71             } 
    72             _func.SetUserLogger(nip, numer_faktury); 
     54             
     55            var login = _repository.FindInvoiceByNipNumber(nip, numerFaktury).SingleOrDefault(); 
     56            platnosc = login; 
     57            if (platnosc == null) return View(); 
     58            _funkcjePlatnosci.SetUserLogger(nip, numerFaktury); 
    7359 
    7460            FormsAuth.SignIn(nip, false); 
     
    7864                return Redirect(returnUrl); 
    7965            } 
    80             else return RedirectToAction("Show", "Platnosc", new { id = platnosc.ID_faktury });          
     66             
     67            return RedirectToAction("Show", "Platnosc", new { id = platnosc.ID_faktury }); 
    8168        } 
     69 
    8270        public ActionResult LogOff() 
    8371        { 
     
    8674        } 
    8775 
    88         private bool ValidateLogOn(string nip, string numer_faktury) 
     76        private bool ValidateLogOn(string nip, string numerFaktury) 
    8977        { 
    9078            if (String.IsNullOrEmpty(nip)) 
    9179            { 
    92                 string err_nip = HttpContext.GetGlobalResourceObject("tlumaczenia", "err_nip").ToString(); 
    93                 ModelState.AddModelError("nip", err_nip); 
     80                var errNip = HttpContext.GetGlobalResourceObject("tlumaczenia", "err_nip").ToString(); 
     81                ModelState.AddModelError("nip", errNip); 
    9482            } 
    95             if (String.IsNullOrEmpty(numer_faktury)) 
     83            if (String.IsNullOrEmpty(numerFaktury)) 
    9684            { 
    97                 string err_faktura = HttpContext.GetGlobalResourceObject("tlumaczenia", "err_faktura").ToString(); 
    98                 ModelState.AddModelError("numer_faktury", err_faktura); 
     85                var errFaktura = HttpContext.GetGlobalResourceObject("tlumaczenia", "err_faktura").ToString(); 
     86                ModelState.AddModelError("numerFaktury", errFaktura); 
    9987            } 
    10088            if (ModelState.IsValid) 
    10189            { 
    102                 bool DaneOk = _repository.Exists(u => u.Faktura_Numer == numer_faktury && u.nip == nip); 
    103                 if (DaneOk == false) 
     90                var daneOk = _repository.Exists(u => u.Faktura_Numer == numerFaktury && u.nip == nip); 
     91                if (daneOk == false) 
    10492                { 
    105                     string err_logowanie = HttpContext.GetGlobalResourceObject("tlumaczenia", "err_logowanie").ToString(); 
    106                     ModelState.AddModelError("_FORM", err_logowanie); 
    107                 }                
     93                    var errLogowanie = HttpContext.GetGlobalResourceObject("tlumaczenia", "err_logowanie").ToString(); 
     94                    ModelState.AddModelError("_FORM", errLogowanie); 
     95                } 
    10896            } 
    10997            return ModelState.IsValid; 
  • branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/HomeController.cs

    r866 r939  
    1 using System; 
    2 using System.Collections.Generic; 
    3 using System.Linq; 
    4 using System.Web; 
    5 using System.Web.Mvc; 
     1using System.Web.Mvc; 
    62 
    73namespace Platnosci.Controllers 
  • branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/MerchantController.cs

    r895 r939  
    11using System; 
    2 using System.Text; 
    32using System.Linq; 
    4 using System.Web; 
    5 using System.Web.UI; 
    6  
    7 using System.Web.UI.WebControls; 
    8 using System.Web.UI.WebControls.WebParts; 
    9 using System.Web.UI.HtmlControls; 
    10 using System.Web.Configuration; 
    113using System.Web.Mvc; 
    12 using System.Web.Mvc.Ajax; 
    13 using System.Collections.Generic; 
    144using Platnosci.Models; 
    155using Platnosci.Core.Linq; 
     
    2919        public const string KOD_POLSKA = "616";         //kod kraju Akceptanta - Polska 
    3020        public const string KODOWANIE = "ISO-8859-2"; 
    31         private int ORDERNUMBER = 122; 
     21        public const string HASH_ERROR_INFO = "payment not exist"; 
    3222 
    33         private string merchantId; 
    34         private readonly PlatnosciDataContext _context; 
    35         private readonly IRepository<PlatnosciEcard> _rep; 
    36         private FunkcjePlatnosci _func; 
     23        private readonly IRepository<vPlatnosciEcard> _repVPayment; 
     24        private readonly IRepository<PlatnosciEcard> _repPayment;  
     25        private readonly FunkcjePlatnosci _funkcjePlatnosci; 
     26        private readonly ITranslateManager _translateManager; 
    3727 
    3828        public MerchantController() 
    39         {    
    40             _rep = new Repository<PlatnosciEcard>(new DataContext1()); 
    41             _context = new PlatnosciDataContext(); 
    42             _func = new FunkcjePlatnosci(); 
     29        { 
     30            _repVPayment = new Repository<vPlatnosciEcard>(new DataContext1()); 
     31            _repPayment = new Repository<PlatnosciEcard>(new DataContext1()); 
     32            _funkcjePlatnosci = new FunkcjePlatnosci(); 
     33            _translateManager = new Translation(); 
    4334        } 
     35 
    4436        public ActionResult Merchant(Payer payer, string language) 
    4537        { 
    4638            System.Diagnostics.Debug.WriteLine("MerchantController:Merchant:" + language); 
    47             language = _func.setLanguage(language); 
     39            language = _funkcjePlatnosci.setLanguage(language); 
    4840 
    49             int id1 = Convert.ToInt32(payer.Id_faktury); 
    50             vPlatnosciEcard platnosc = _rep.FindInvoiceById(id1).SingleOrDefault(); 
     41            var id1 = Convert.ToInt32(payer.Id_faktury); 
     42            var platnosc = _repVPayment.Find(p => p.ID_faktury == id1).SingleOrDefault(); 
    5143                  
    52             if (platnosc == null) 
    53             { 
    54                 ErrorViewData errorViewData = _func.InitErrorViewData(HttpContext.GetGlobalResourceObject("tlumaczenia", "brakdanych").ToString()); 
    55                 return View("Error1", errorViewData); 
    56             } 
    57             else if (!_func.UserIdentity(platnosc, ControllerContext.HttpContext.User.Identity.Name)) 
    58             { 
    59                 ErrorViewData errorViewData = _func.InitErrorViewData(HttpContext.GetGlobalResourceObject("tlumaczenia", "weryfikacja").ToString()); 
    60                 return View("Error1", errorViewData); 
    61             } 
     44            if (platnosc == null)  
     45                return View("Error1", IsError("brakdanych", 0)); 
    6246             
    63             Waluta waluta = _func.setAmount(platnosc); 
     47            if (!_funkcjePlatnosci.UserIdentity(platnosc, ControllerContext.HttpContext.User.Identity.Name)) 
     48                return View("Error1", IsError("weryfikacja", 0));            
     49 
     50            var waluta = _funkcjePlatnosci.setAmount(platnosc); 
    6451            var newPayment = InitNewPayment(id1, platnosc, waluta, payer );             
    6552 
    66             string systemKs = platnosc.SystemKsiegowyId.ToString(); 
     53            var systemKs = platnosc.SystemKsiegowyId.ToString(); 
    6754 
    68             bool createPayment = AddNewPayment(newPayment); 
    69             if (createPayment == false) return View("Error"); 
     55            var createPayment = AddNewPayment(newPayment); 
     56             
     57            if (createPayment == false) 
     58                return View("Error1", IsError("error_hash", payer.Id_faktury)); 
    7059 
    71             string hash = GetHash(newPayment, systemKs); 
     60            var merchant = getMerchantInfo(systemKs); 
     61            
     62            var hash = GetHash(newPayment, merchant); 
    7263            hash = hash.Replace("\n",""); 
    73             if (hash == BAD_HASH  || hash == "" ) return View("Error"); 
     64           
     65            if (hash == BAD_HASH || hash == "" || hash == HASH_ERROR_INFO) 
     66                return View("Error1", IsError("error_hash", payer.Id_faktury)); 
    7467 
    75             if (systemKs == "1") merchantId = "170906000"; 
    76                 else merchantId = "171485000"; 
     68            //przeslanie w linku ordernumber potrzebnego do wyswietlenia potwierdzenia 
     69            var orderek = _repPayment.GetOrdernumber(newPayment.ORDERDESCRIPTION, newPayment.IDFaktury, newPayment.Data); 
    7770 
    78             string LinkFail = ConfigurationManager.AppSettings["Strona"]; 
    79             LinkFail += "/" + language + ConfigurationManager.AppSettings["LinkFail"]; 
    80             LinkFail += "/" + newPayment.IDFaktury; 
     71            var linkFail = ConfigurationManager.AppSettings["Strona"]; 
     72            linkFail += "/" + language + ConfigurationManager.AppSettings["LinkFail"]; 
     73            linkFail += "/" + newPayment.IDFaktury + "?o=" + orderek; 
    8174 
    82             string LinkOk = ConfigurationManager.AppSettings["Strona"]; 
    83             LinkOk += "/" + language + ConfigurationManager.AppSettings["LinkOk"]; 
    84             LinkOk += "/" + newPayment.IDFaktury; ; 
     75            var linkOk = ConfigurationManager.AppSettings["Strona"]; 
     76            linkOk += "/" + language + ConfigurationManager.AppSettings["LinkOk"]; 
     77            linkOk += "/" + newPayment.IDFaktury + "?o=" + orderek; 
    8578 
    86             var merchantViewData = InitMerchantViewData(newPayment, hash, merchantId, LinkFail, LinkOk); 
    87             wyslij(merchantViewData, hash, merchantId); 
    88             return View(merchantViewData);             
    89         } 
     79            if (merchant != null && !String.IsNullOrEmpty(merchant.merchntId)) 
     80                SendRequest(newPayment, hash, merchant, linkFail, linkOk); 
     81            else  
     82                return View("Error1", IsError("error_hash", payer.Id_faktury)); 
     83 
     84            return new EmptyResult();           
     85        }         
    9086        private PlatnosciEcard InitNewPayment(int id, vPlatnosciEcard platnosc, Waluta waluta, Payer payer) 
    9187        { 
    92             PlatnosciEcard newPayment = new PlatnosciEcard(); 
     88            var newPayment = new PlatnosciEcard(); 
    9389            newPayment.IDFaktury = id; 
    9490            newPayment.ORDERDESCRIPTION = platnosc.Faktura_Numer; 
     
    111107            return newPayment; 
    112108        } 
     109         
    113110        private bool AddNewPayment(PlatnosciEcard platnosc) 
    114111        { 
    115112            if (platnosc != null) 
    116113            {                 
    117                // _rep.Insert(platnosc); 
     114                _repPayment.Insert(platnosc); 
    118115                return true; 
    119116            } 
    120117            return false; 
    121118        } 
    122         private MerchantViewData InitMerchantViewData(PlatnosciEcard newPayment, string hash, string Id, string LinkFail, string LinkOk) 
     119 
     120        private string GetHash(PlatnosciEcard p, Merchant merchant) 
    123121        { 
    124             MerchantViewData merchantViewData = new MerchantViewData(); 
    125             merchantViewData.nowaPlatnosc = newPayment; 
    126             merchantViewData.Hash = hash; 
    127             merchantViewData.merchantId = Id; 
    128             merchantViewData.LinkFail = LinkFail; 
    129             merchantViewData.LinkOk = LinkOk; 
    130              
    131             //wartosci testowe 
    132             merchantViewData.nowaPlatnosc.ORDERNUMBER = ORDERNUMBER; 
    133             merchantViewData.nowaPlatnosc.ORDERDESCRIPTION = "222"; 
    134             merchantViewData.nowaPlatnosc.AMOUNT = 300; 
    135             merchantViewData.nowaPlatnosc.CURRENCY = "985"; 
    136             merchantViewData.nowaPlatnosc.SESSIONID = "ff"; 
    137             merchantViewData.merchantId = "171485000"; 
    138             merchantViewData.LinkFail = ""; 
    139             merchantViewData.LinkOk = ""; 
    140             return merchantViewData; 
    141         } 
    142         private string GetHash(PlatnosciEcard p, string ks) 
    143         { 
    144             string strResponse; 
    145             /*PlatnosciEcard platnosc = _rep.FindOne(i => i.ORDERDESCRIPTION == p.ORDERDESCRIPTION && i.IDFaktury == p.IDFaktury && i.Data == p.Data); 
    146             string adres = "https://pay.ecard.pl/servlet/HS?orderNumber="+p.ORDERNUMBER; 
    147             HttpWebRequest req = (HttpWebRequest)WebRequest.Create(adres); 
    148             string dane = "&orderDescription=&amount=" + platnosc.AMOUNT; 
     122            var platnosc = _repPayment.Find(i => i.ORDERDESCRIPTION == p.ORDERDESCRIPTION && i.IDFaktury == p.IDFaktury && i.Data == p.Data).First(); 
     123 
     124            if (platnosc == null || merchant == null) return HASH_ERROR_INFO; 
     125 
     126            var adres = "https://pay.ecard.pl/servlet/HS?orderNumber=" + platnosc.ORDERNUMBER; 
     127            var req = (HttpWebRequest)WebRequest.Create(adres); 
     128            var dane = "&orderDescription=&amount=" + platnosc.AMOUNT; 
    149129            dane += "&currency=" + platnosc.CURRENCY; 
    150             if (ks == "1") dane += "&merchantId=171485000&password=ashSeth2"; 
    151                 else dane += "&merchantId=170906000&password=JaYpqfs0"; */ 
     130            dane += string.Format("&merchantId={0}&password={1}", merchant.merchntId, merchant.merchantPassword); 
    152131 
    153             //dane testowe 
    154             string adres = "https://pay.ecard.pl/servlet/HS?orderNumber="+ORDERNUMBER; 
    155             HttpWebRequest req = (HttpWebRequest)WebRequest.Create(adres); 
    156             string dane = "&orderDescription=&amount=300&currency=985&merchantId=171485000&password=ashSeth2";                 
    157              
    158             byte[] bdata = System.Text.ASCIIEncoding.ASCII.GetBytes(dane); 
     132            var bdata = System.Text.Encoding.ASCII.GetBytes(dane); 
    159133            req.Method = "POST"; 
    160134            req.ContentType = "application/x-www-form-urlencoded"; 
    161135            req.ContentLength = dane.Length; 
    162136 
    163             Stream reqStream = req.GetRequestStream(); 
     137            var reqStream = req.GetRequestStream(); 
    164138            reqStream.Write(bdata, 0, bdata.Length); 
    165139            reqStream.Close(); 
    166140 
    167             StreamReader streamResponse = new StreamReader(req.GetResponse().GetResponseStream()); 
    168             strResponse = streamResponse.ReadToEnd(); 
     141            var streamResponse = new StreamReader(req.GetResponse().GetResponseStream()); 
     142            string strResponse = streamResponse.ReadToEnd(); 
    169143            streamResponse.Close(); 
    170144                      
    171145            return strResponse; 
    172146        } 
    173         private void wyslij(MerchantViewData m, string hash, string id) 
     147 
     148        private void SendRequest(PlatnosciEcard m, string hash, Merchant merchant, string linkok, string linkfail) 
    174149        { 
    175             string adres = "https://pay.ecard.pl/servlet/PSTEST?ORDERDESCRIPTION="+m.nowaPlatnosc.ORDERDESCRIPTION; 
    176             HttpWebRequest req = (HttpWebRequest)WebRequest.Create(adres); 
    177             string dane = "&AMOUNT=300&CURRENCY=985&ORDERNUMBER="+ORDERNUMBER+"&NAME="+m.nowaPlatnosc.NAME+"&SURNAME="+m.nowaPlatnosc.SURNAME+"&LANGUAGE=PL&CHARSET=ISO-8859-2"; 
    178             dane += "&COUNTRY=616&PAYMENTTYPE=CARDS&JS=1&HASH=" + hash + "&MERCHANTID=171485000&AUTODEPOSIT=" + m.nowaPlatnosc.AUTODEPOSIT + "&LINKFAIL="; 
    179             dane += "&LINKOK=&SESSIONID="; 
     150            var adres = ConfigurationManager.AppSettings["eCard.Url"] + "?ORDERDESCRIPTION=" + m.ORDERDESCRIPTION; 
     151 
     152            var dane = "&AMOUNT=" + m.AMOUNT + "&CURRENCY=" + m.CURRENCY + "&ORDERNUMBER=" + m.ORDERNUMBER; 
     153            dane += "&NAME=" + m.NAME + "&SURNAME=" + m.SURNAME + "&LANGUAGE=" + m.LANGUAGE + "&CHARSET=ISO-8859-2"; 
     154            dane += "&COUNTRY=616&PAYMENTTYPE=CARDS&JS=1&HASH=" + hash + "&MERCHANTID=" + merchant.merchntId + "&AUTODEPOSIT=" + m.AUTODEPOSIT; 
     155            dane += "&LINKFAIL=" + linkfail + "&LINKOK=" + linkok + "&SESSIONID=" + m.SESSIONID; 
    180156            Response.Redirect(adres + dane); 
     157        } 
     158        public ErrorViewData IsError(string errortxt, int idFaktury) 
     159        { 
     160            if (errortxt == "brakdanych") 
     161                errortxt = _translateManager.Translate("tlumaczenia", "brakdanych"); 
     162            else if (errortxt == "weryfikacja") 
     163                errortxt = _translateManager.Translate("tlumaczenia", "weryfikacja"); 
     164            else if (errortxt == "error_hash") 
     165                errortxt = _translateManager.Translate("tlumaczenia", "error_hash"); 
     166 
     167            return _funkcjePlatnosci.InitErrorViewData(errortxt, idFaktury); 
     168        } 
     169        public Merchant getMerchantInfo( string systemKs) 
     170        { 
     171            var merchant = new Merchant(); 
     172            if (systemKs == "1") 
     173            { 
     174                merchant.merchntId = "171485000"; 
     175                merchant.merchantPassword = "ashSeth2"; 
     176            } 
     177            else 
     178            { 
     179                merchant.merchntId = "170906000"; 
     180                merchant.merchantPassword = "JaYpqfs0"; 
     181            }               
     182            return merchant; 
    181183        } 
    182184    } 
  • branches/Emisje/eCard/eCardMVC/Platnosci/Controllers/PlatnoscController.cs

    r895 r939  
    11using System; 
    22using System.Linq; 
    3 using System.Text; 
    4 using System.Web; 
    53using System.Web.Mvc; 
    6 using System.Web.Mvc.Ajax; 
    74using Platnosci.Models; 
    85using Platnosci.Core.Linq; 
    96using Platnosci.Core.Interface; 
    10 using System.Collections.Generic; 
    11 using System.Globalization; 
    12 using System.Web.UI; 
    13 using System.Threading; 
    14 using System.Data.Linq; 
    15 using System.Web.Configuration; 
    16 using System.Web.Routing; 
    177 
    188namespace Platnosci.Controllers 
     
    2313    { 
    2414        public const string ISPAID = "payment_deposited";       //transakcja potwierdzona do rozliczenia 
    25         private readonly PlatnosciDataContext _context; 
    26         private readonly IDataContext _context1; 
    27         private readonly IRepository<PotwierdzeniaEcard> _rep; 
    28         private readonly IRepository<PlatnosciEcard> _repPl; 
    29         private FunkcjePlatnosci _func; 
    30         private string weryfikacja; 
    31         private string brakdanych; 
    32         private string zaplacono; 
    33         private string err_imie; 
    34         private string err_nazwisko; 
    35         private int test = 0; 
    36         
     15        private readonly IRepository<vPlatnosciEcard> _repVPayment;        
     16        private readonly IRepository<PlatnosciEcard> _repPayment; 
     17        private readonly IRepository<PotwierdzeniaEcard> _repConfirm; 
     18        private readonly ITranslateManager _translateManager; 
     19        private readonly FunkcjePlatnosci _funkcjePlatnosci; 
     20               
    3721        public PlatnoscController() 
    3822        { 
    39             _context = new PlatnosciDataContext(); 
    40             _rep = new Repository<PotwierdzeniaEcard>(new DataContext1()); 
    41             _repPl = new Repository<PlatnosciEcard>(new DataContext1()); 
    42             _func = new FunkcjePlatnosci(); 
    43                        
    44         } 
    45         public PlatnoscController(IDataContext datacontext, int czy_test) 
    46         { 
    47             _rep = new Repository<PotwierdzeniaEcard>(datacontext); 
    48             _repPl = new Repository<PlatnosciEcard>(datacontext); 
    49             _context1 = datacontext; 
    50             _func = new FunkcjePlatnosci(); 
    51             test = czy_test; 
     23            _repVPayment = new Repository<vPlatnosciEcard>(new DataContext1()); 
     24            _repPayment = new Repository<PlatnosciEcard>(new DataContext1()); 
     25            _repConfirm = new Repository<PotwierdzeniaEcard>(new DataContext1()); 
     26            _funkcjePlatnosci = new FunkcjePlatnosci(); 
     27            _translateManager = new Translation();          
     28        } 
     29        public PlatnoscController(IRepository<vPlatnosciEcard> repVPayment, IRepository<PlatnosciEcard> repPayment, IRepository<PotwierdzeniaEcard> repConfirm, ITranslateManager translate) 
     30        { 
     31            _repVPayment = repVPayment; 
     32            _repPayment = repPayment; 
     33            _repConfirm = repConfirm; 
     34            _funkcjePlatnosci = new FunkcjePlatnosci(); 
     35            _translateManager = translate; 
    5236        } 
    5337        public ActionResult Show(string id, string language) 
    5438        { 
    55             language = _func.setLanguage(language); 
    56             ustawTlumaczenia(test); 
    57             int id1 = ConvertId(id); 
    58  
    59             vPlatnosciEcard platnosc = _rep.FindInvoiceById(id1).SingleOrDefault(); 
    60             if (!String.IsNullOrEmpty(Iserror(platnosc).error)) return View("Error1", Iserror(platnosc)); 
    61  
    62             string kwota = ""; 
    63             kwota = _func.BruttoToString(platnosc.Brutto, platnosc.waluta_brutto, platnosc.waluta_miano); 
    64             var payer = InitPayer("", "", platnosc.ID_faktury); 
     39            _funkcjePlatnosci.setLanguage(language); 
     40            var id1 = ConvertId(id); 
     41 
     42            var platnosc = _repVPayment.Find(p => p.ID_faktury == id1).SingleOrDefault(); 
     43            if (!String.IsNullOrEmpty(IsError(platnosc).Error)) return View("Error1", IsError(platnosc)); 
     44 
     45            var kwota = _funkcjePlatnosci.BruttoToString(platnosc.Brutto, platnosc.waluta_brutto, platnosc.waluta_miano); 
     46             
     47            var payer = InitPayer(platnosc.ID_faktury); 
     48             
    6549            var invoiceDeatailsViewData = InitInvoiceDetailsViewData(platnosc, payer, "", kwota);   
    6650 
    67             var tablica_potwierdzenia = _rep.FindItemsByIdFaktury(id1); 
    68             if (tablica_potwierdzenia.Count > 0) //platnosc za fakture zostala uregulowana 
    69             { 
    70                 string data_zaplaty = String.Format("{0:dd-MM-yyyy}", tablica_potwierdzenia[0].AUTHTIME); 
    71                 invoiceDeatailsViewData.info = String.Format(zaplacono, platnosc.Faktura_Numer, data_zaplaty); 
    72                 invoiceDeatailsViewData.termin = data_zaplaty; 
     51            var tablicaPotwierdzenia = _repConfirm.FindItemsByIdFaktury(id1); 
     52            if (tablicaPotwierdzenia.Count > 0) //platnosc za fakture zostala uregulowana 
     53            { 
     54                var dataZaplaty = String.Format("{0:dd-MM-yyyy}", tablicaPotwierdzenia[0].AUTHTIME); 
     55                invoiceDeatailsViewData.info = String.Format(_translateManager.Translate("tlumaczenia","zaplacono"), platnosc.Faktura_Numer, dataZaplaty); 
     56                invoiceDeatailsViewData.termin = dataZaplaty; 
    7357                return View("Paid", invoiceDeatailsViewData); 
    7458            }        
     
    7963        public ActionResult Show(Payer payer, string language) 
    8064        { 
    81             language = _func.setLanguage(language); 
    82             ustawTlumaczenia(test); 
    83             vPlatnosciEcard platnosc = _rep.FindInvoiceById(payer.Id_faktury).SingleOrDefault(); 
    84             if (!String.IsNullOrEmpty(Iserror(platnosc).error)) return View("Error1", Iserror(platnosc)); 
     65            _funkcjePlatnosci.setLanguage(language); 
     66             
     67            var platnosc = _repVPayment.Find(p => p.ID_faktury == payer.Id_faktury).SingleOrDefault(); 
     68             
     69            if (!String.IsNullOrEmpty(IsError(platnosc).Error)) return View("Error1", IsError(platnosc)); 
    8570             
    8671            if (String.IsNullOrEmpty(payer.FirstName)) 
    8772            { 
    88                 ModelState.AddModelError("Payer.FirstName", err_imie); 
     73                ModelState.AddModelError("Payer.FirstName", _translateManager.Translate("tlumaczenia", "err_imieWK")); 
    8974            } 
    9075            if (String.IsNullOrEmpty(payer.LastName)) 
    9176            { 
    92                 ModelState.AddModelError("Payer.LastName", err_nazwisko); 
     77                ModelState.AddModelError("Payer.LastName", _translateManager.Translate("tlumaczenia", "err_nazwiskoWK")); 
    9378            } 
    9479            if (ModelState.IsValid == false) 
    9580            { 
    96                 string kwota = ""; 
    97                 kwota = _func.BruttoToString(platnosc.Brutto, platnosc.waluta_brutto, platnosc.waluta_miano);  
     81                var kwota = _funkcjePlatnosci.BruttoToString(platnosc.Brutto, platnosc.waluta_brutto, platnosc.waluta_miano);  
    9882                var viewData = InitInvoiceDetailsViewData(platnosc, payer, "", kwota ); 
    99                 return View("Show",viewData); 
    100             }  
    101             if (payer != null) 
    102             {                 
    103                 System.Diagnostics.Debug.WriteLine("PlatnosciController:Show"); 
    104                 return RedirectToAction("Merchant", "Merchant", payer); 
    105             }                 
    106             else return View("Error"); 
    107         } 
    108         public ActionResult Ok(string id, string language) 
    109         { 
    110             language = _func.setLanguage(language); 
    111             ustawTlumaczenia(test); 
    112             int id1 = ConvertId(id); 
    113             vPlatnosciEcard platnosc = _rep.FindInvoiceById(id1).SingleOrDefault(); 
    114             if (!String.IsNullOrEmpty(Iserror(platnosc).error)) return View("Error1", Iserror(platnosc));             
     83                return View("Show",viewData);  
     84            } 
     85 
     86            return RedirectToAction("Merchant", "Merchant", payer); 
     87        } 
     88 
     89        public ActionResult Ok(string id, string language, string o) 
     90        { 
     91            var order = ConvertId(o); 
     92             
     93            _funkcjePlatnosci.setLanguage(language); 
     94             
     95            var id1 = ConvertId(id); 
     96             
     97            var platnosc = _repVPayment.Find(p => p.ID_faktury == id1).SingleOrDefault(); 
     98             
     99            if (!String.IsNullOrEmpty(IsError(platnosc).Error)) return View("Error1", IsError(platnosc));             
    115100             
    116101            var invoiceDeatailsViewData = InitInvoiceDetailsViewData(platnosc, null, "" , ""); 
     102 
     103            //sprawdzamy czy dla kombinacji ordernumber i idfaktury istnieje platnosc, 
     104            //jesli tak, to sprawdzamy czy przyszlo potwierdzenie z eCardu.              
     105            if (order > 0) 
     106            { 
     107                if (CheckConfirm(id1, order) == 0)   //nie ma potwierdzenia z eCardu 
     108                { 
     109                    invoiceDeatailsViewData.info = String.Format(_translateManager.Translate("tlumaczenia", "blad1"), invoiceDeatailsViewData.vPlatnosciEcard.Faktura_Numer); 
     110                } 
     111                else 
     112                { 
     113                    if (CheckConfirm(id1, order) == 2) invoiceDeatailsViewData.info = _translateManager.Translate("tlumaczenia", "weryfikacja"); 
     114                } 
     115            } 
     116 
    117117            return View(invoiceDeatailsViewData); 
    118118        } 
    119119        public ActionResult Fail(string id, string language) 
    120120        { 
    121             language = _func.setLanguage(language); 
    122             ustawTlumaczenia(test); 
    123             int id1 = ConvertId(id); 
    124             vPlatnosciEcard platnosc = _rep.FindInvoiceById(id1).SingleOrDefault(); 
    125             if (!String.IsNullOrEmpty(Iserror(platnosc).error)) return View("Error1", Iserror(platnosc)); 
    126              
     121            _funkcjePlatnosci.setLanguage(language); 
     122            var id1 = ConvertId(id); 
     123            var platnosc = _repVPayment.Find(p => p.ID_faktury == id1).SingleOrDefault(); 
     124            if (!String.IsNullOrEmpty(IsError(platnosc).Error)) return View("Error1", IsError(platnosc)); 
     125 
    127126            var invoiceDeatailsViewData = InitInvoiceDetailsViewData(platnosc, null, "", ""); 
    128127            return View(invoiceDeatailsViewData); 
    129128        } 
     129        public ActionResult Form() 
     130        { 
     131            return View(); 
     132        } 
    130133        public ActionResult Status() 
    131134        { 
    132             string MERCHANTNUMBER = Request.Form["MERCHANTNUMBER"]; 
    133             int ORDERNUMBER = Convert.ToInt32(Request.Form["ORDERNUMBER"]); 
    134             string COMMTYPE = Request.Form["COMMTYPE"]; 
    135             string CURRENTSTATE = Request.Form["CURRENTSTATE"]; 
    136             string PREVIOUSSTATE = Request.Form["PREVIOUSSTATE"]; 
    137             bool PAYMENTTYPE = Convert.ToBoolean(Request.Form["PAYMENTTYPE"]); 
    138             bool EVENTTYPE = Convert.ToBoolean(Request.Form["EVENTTYPE"]); 
    139             bool PAYMENTNUMBER = Convert.ToBoolean(Request.Form["PAYMENTNUMBER"]); 
    140             string APPROVALCODE = Request.Form["APPROVALCODE"]; 
    141             string VALIDATIONCODE = Request.Form["VALIDATIONCODE"]; 
    142             string BIN = Request.Form["BIN"]; 
    143             DateTime AUTHTIME = Convert.ToDateTime(Request.Form["AUTHTIME"]); 
    144             string TYPE = Request.Form["TYPE"]; 
    145             string WITHCVC = Request.Form["WITHCVC"]; 
    146             DateTime DATATRANSMISJI = Convert.ToDateTime(Request.Form["DATATRANSMISJI"]); 
    147              
    148             PotwierdzeniaEcard potwierdzenie = new PotwierdzeniaEcard(); 
    149             potwierdzenie.APPROVALCODE = APPROVALCODE; 
    150             potwierdzenie.AUTHTIME = AUTHTIME; 
    151             potwierdzenie.BIN = BIN; 
    152             potwierdzenie.COMMTYPE = COMMTYPE; 
    153             potwierdzenie.CURRENTSTATE = CURRENTSTATE; 
    154             potwierdzenie.DATATRANSMISJI = DATATRANSMISJI; 
    155             potwierdzenie.EVENTTYPE = EVENTTYPE; 
    156             potwierdzenie.MERCHANTNUMBER = MERCHANTNUMBER; 
    157             potwierdzenie.ORDERNUMBER = ORDERNUMBER; 
    158             potwierdzenie.PAYMENTNUMBER = PAYMENTNUMBER; 
    159             potwierdzenie.PAYMENTTYPE = PAYMENTTYPE; 
    160             potwierdzenie.PREVIOUSSTATE = PREVIOUSSTATE; 
    161             potwierdzenie.TYPE = TYPE; 
    162             potwierdzenie.VALIDATIONCODE = VALIDATIONCODE; 
    163             potwierdzenie.WITHCVC = WITHCVC; 
    164  
    165             _rep.Insert(potwierdzenie); 
    166             UpdateStatus(ORDERNUMBER, CURRENTSTATE); 
    167             return View(); 
    168         } 
    169         private Payer InitPayer(string FirstName, string LastName, int Id_faktury) 
    170         { 
    171             Payer payer = new Payer(); 
    172             payer.FirstName = ""; 
    173             payer.LastName = ""; 
    174             payer.Id_faktury = Id_faktury; 
     135            var potwierdzenie = new PotwierdzeniaEcard(); 
     136            var content = new ContentResult(); 
     137            try 
     138            { 
     139                if (!String.IsNullOrEmpty(Request.Form["APPROVALCODE"])) potwierdzenie.APPROVALCODE = Request.Form["APPROVALCODE"]; 
     140                if (!String.IsNullOrEmpty(Request.Form["AUTHTIME"])) potwierdzenie.AUTHTIME = Convert.ToDateTime(Request.Form["AUTHTIME"]); 
     141                if (!String.IsNullOrEmpty(Request.Form["BIN"])) potwierdzenie.BIN = Request.Form["BIN"]; 
     142                if (!String.IsNullOrEmpty(Request.Form["COMMTYPE"])) potwierdzenie.COMMTYPE = Request.Form["COMMTYPE"]; 
     143                if (!String.IsNullOrEmpty(Request.Form["CURRENTSTATE"])) potwierdzenie.CURRENTSTATE = Request.Form["CURRENTSTATE"]; 
     144                if (!String.IsNullOrEmpty(Request.Form["DATATRANSMISJI"])) potwierdzenie.DATATRANSMISJI = Convert.ToDateTime(Request.Form["DATATRANSMISJI"]); 
     145                if (!String.IsNullOrEmpty(Request.Form["EVENTTYPE"])) potwierdzenie.EVENTTYPE = Convert.ToBoolean(Request.Form["EVENTTYPE"]); 
     146                if (!String.IsNullOrEmpty(Request.Form["MERCHANTNUMBER"])) potwierdzenie.MERCHANTNUMBER = Request.Form["MERCHANTNUMBER"]; 
     147                if (!String.IsNullOrEmpty(Request.Form["ORDERNUMBER"])) potwierdzenie.ORDERNUMBER = Convert.ToInt32(Request.Form["ORDERNUMBER"]); 
     148                if (!String.IsNullOrEmpty(Request.Form["PAYMENTNUMBER"])) potwierdzenie.PAYMENTNUMBER = Convert.ToBoolean(Request.Form["PAYMENTNUMBER"]); 
     149                if (!String.IsNullOrEmpty(Request.Form["PAYMENTTYPE"])) potwierdzenie.PAYMENTTYPE = Convert.ToBoolean(Request.Form["PAYMENTTYPE"]); 
     150                if (!String.IsNullOrEmpty(Request.Form["PREVIOUSSTATE"])) potwierdzenie.PREVIOUSSTATE = Request.Form["PREVIOUSSTATE"]; 
     151                if (!String.IsNullOrEmpty(Request.Form["TYPE"])) potwierdzenie.TYPE = Request.Form["TYPE"]; 
     152                if (!String.IsNullOrEmpty(Request.Form["VALIDATIONCODE"])) potwierdzenie.VALIDATIONCODE = Request.Form["VALIDATIONCODE"]; 
     153                if (!String.IsNullOrEmpty(Request.Form["WITHCVC"])) potwierdzenie.WITHCVC = Request.Form["WITHCVC"]; 
     154 
     155                _repConfirm.Insert(potwierdzenie); 
     156 
     157                if (potwierdzenie.ORDERNUMBER.HasValue) 
     158                    UpdateStatus(potwierdzenie.ORDERNUMBER.Value, potwierdzenie.CURRENTSTATE); 
     159 
     160                content.Content = "OK";                 
     161            } 
     162            catch(Exception ex) 
     163            { 
     164                content.Content = "FALSE " + ex.Message + " " + ex.GetType(); 
     165            }        
     166             
     167            return content; 
     168        } 
     169 
     170        private static Payer InitPayer(int idFaktury) 
     171        { 
     172            var payer = new Payer {Id_faktury = idFaktury}; 
    175173            return payer; 
    176174        } 
    177         private InvoiceDetailsViewData InitInvoiceDetailsViewData(vPlatnosciEcard platnosc, Payer payer, string status, string brutto ) 
     175 
     176        private static InvoiceDetailsViewData InitInvoiceDetailsViewData(vPlatnosciEcard platnosc, Payer payer, string status, string brutto ) 
    178177        { 
    179178            var invoiceDeatailsViewData = new InvoiceDetailsViewData(); 
     
    184183            return invoiceDeatailsViewData; 
    185184        } 
    186         private void ustawTlumaczenia(int test)  
    187         { 
    188             if (test == 0)  
    189             { 
    190                 weryfikacja = Resources.tlumaczenia.weryfikacja.ToString(); 
    191                 brakdanych = Resources.tlumaczenia.brakdanych.ToString(); 
    192                 zaplacono = Resources.tlumaczenia.zaplacono.ToString(); 
    193                 err_imie = Resources.tlumaczenia.err_imieWK.ToString(); 
    194                 err_nazwisko = Resources.tlumaczenia.err_nazwiskoWK.ToString(); 
    195             } 
    196         }  
    197         public void setWeryfikacja(string value) 
    198         { 
    199             this.weryfikacja = value; 
    200         } 
    201         public void setBrakDanych(string value) 
    202         { 
    203             this.brakdanych = value; 
    204         } 
    205         public void setZaplacono(string value) 
    206         { 
    207             this.zaplacono = value; 
    208         } 
     185 
    209186        public int ConvertId(string id) 
    210187        { 
    211             int id1 = 0; 
    212             try 
    213             { 
    214                 id1 = (id != null) ? Convert.ToInt32(id) : 0; 
    215             } 
    216             catch 
    217             { 
    218             } 
    219             return id1; 
    220         } 
    221         public ErrorViewData Iserror(vPlatnosciEcard platnosc) 
    222         { 
    223             string errortxt = ""; 
    224             if (platnosc == null) errortxt = brakdanych; 
    225             else if (!_func.UserIdentity(platnosc, HttpContext.User.Identity.Name)) errortxt = weryfikacja; 
    226             ErrorViewData errorViewData = _func.InitErrorViewData(errortxt); 
    227             return errorViewData; 
    228         } 
     188            int id1; 
     189            return Int32.TryParse(id, out id1) ? id1 : 0; 
     190        } 
     191 
     192        public ErrorViewData IsError(vPlatnosciEcard platnosc) 
     193        { 
     194            var errortxt = ""; 
     195             
     196            if (platnosc == null)  
     197                errortxt = _translateManager.Translate("tlumaczenia", "brakdanych"); 
     198            else if (!_funkcjePlatnosci.UserIdentity(platnosc, HttpContext.User.Identity.Name))  
     199                errortxt = _translateManager.Translate("tlumaczenia","weryfikacja"); 
     200 
     201            return _funkcjePlatnosci.InitErrorViewData(errortxt,0); 
     202        } 
     203 
    229204        public void UpdateStatus(int ordernumber, string currentstate) 
    230205        { 
    231             PlatnosciEcard platnosc = _repPl.FindOne(ordernumber); 
    232             if (platnosc != null && currentstate == ISPAID) 
    233             { 
    234                 platnosc.Status = true; 
    235                 platnosc.Status_data = DateTime.Now; 
    236                 _repPl.SubmitChanges(); 
    237                  
    238                 System.Diagnostics.Debug.WriteLine("IsUpdate"); 
    239             } 
    240         }                
     206            var platnosc = _repPayment.Find(p => p.ORDERNUMBER == ordernumber).SingleOrDefault(); 
     207 
     208            if (platnosc == null || currentstate != ISPAID) return; 
     209 
     210            platnosc.Status = true; 
     211            platnosc.Status_data = DateTime.Now; 
     212            _repPayment.SubmitChanges(); 
     213        } 
     214 
     215        public int CheckConfirm(int idfaktury, int order) 
     216        { 
     217            var pl = _repPayment.Find(p => p.ORDERNUMBER == order && p.IDFaktury == idfaktury).SingleOrDefault(); 
     218 
     219            if (pl != null) 
     220            { 
     221                var confirm = _repConfirm.Find(p => p.ORDERNUMBER == order).FirstOrDefault(); 
     222                if (confirm == null) return 0; //potwierdzenie nie przyszlo z eCardu 
     223            } 
     224            else 
     225            { 
     226                return 2; //nie ma platnosci o takim idfaktury i ordernumber 
     227            } 
     228             
     229            return 1;    //potwierdzenie przyszlo z eCardu 
     230        }   
    241231    } 
    242232}