using System; using System.Linq; using System.Web.Mvc; using Platnosci.Models; using Platnosci.Core.Linq; using Platnosci.Core.Interface; using System.Configuration; using System.Net; using System.IO; using System.Threading; namespace Platnosci.Controllers { [Authorize] public class MerchantController : Controller { public const string BAD_HASH = "zlyHash"; //błędne hasło - odpowiedŸ z eCard public const string HASH_ERROR_INFO = "payment not exist"; private readonly IRepository _repVPayment; private readonly IRepository _repPayment; private readonly FunkcjePlatnosci _funkcjePlatnosci; private readonly eCardData _eCardData; private readonly ITranslateManager _translateManager; public MerchantController() { _repVPayment = new Repository(new DataContext()); _repPayment = new Repository(new DataContext()); _funkcjePlatnosci = new FunkcjePlatnosci(); _translateManager = new Translation(); _eCardData = new eCardData(_repPayment); } public MerchantController(IRepository repVPayment, IRepository repPayment, ITranslateManager translate, eCardData ecardData) { _repVPayment = repVPayment; _repPayment = repPayment; _funkcjePlatnosci = new FunkcjePlatnosci(); _translateManager = translate; _eCardData = ecardData; } public ActionResult Merchant(Payer payer, string language) { language = _funkcjePlatnosci.SetLanguage(language); var id1 = Convert.ToInt32(payer.Id_faktury); var platnosc = _repVPayment.Find(p => p.ID_faktury == id1).SingleOrDefault(); if (platnosc == null) return View("Error1", IsError("brakdanych", 0)); if (!_funkcjePlatnosci.UserIdentity(platnosc, ControllerContext.HttpContext.User.Identity.Name)) return View("Error1", IsError("weryfikacja", 0)); var merchant = _eCardData.CreateMerchantData(platnosc, payer, language, Session.SessionID); if (merchant != null) merchant.IsValid(); if (merchant == null || (merchant != null && (!String.IsNullOrEmpty(merchant.Error)))) return View("Error1", IsError("error_hash", payer.Id_faktury)); var adres = _eCardData.GetUrl(merchant); Response.Redirect(adres); return new EmptyResult(); } 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"); else if (errortxt == "error_hash") errortxt = _translateManager.Translate("tlumaczenia", "error_hash"); return _funkcjePlatnosci.InitErrorViewData(errortxt, idFaktury); } } }