using System; using System.Linq; using System.Web.Mvc; using adMoto.Payments.Core; using adMoto.Payments.Core.Data; using adMoto.Payments.Core.Interfaces; using adMoto.Payments.Web.Models; namespace adMoto.Payments.Web.Controllers { [Authorize] public class MerchantController : Controller { private readonly IRepository _repVPayment; private readonly IRepository _repPayment; private readonly PaymentsUtils _paymentsUtils; private readonly MerchantHelper _merchantHelper; private readonly ITranslateManager _translateManager; public MerchantController() { _repVPayment = new Repository(new DataContext()); _repPayment = new Repository(new DataContext()); _paymentsUtils = new PaymentsUtils(_repPayment); _translateManager = new Translation(); _merchantHelper = new MerchantHelper(_repPayment); } public MerchantController(IRepository repVPayment, IRepository repPayment, ITranslateManager translate) { _repVPayment = repVPayment; _repPayment = repPayment; _translateManager = translate; _paymentsUtils = new PaymentsUtils(_repPayment, _translateManager); _merchantHelper = new MerchantHelper(_repPayment); } public ActionResult Merchant(Payer payer, string language) { language = _paymentsUtils.SetLanguage(language); var id1 = Convert.ToInt32(payer.Id_faktury); var platnosc = _repVPayment.Find(p => p.ID_faktury == id1).SingleOrDefault(); var errorViewData = _paymentsUtils.IsError(platnosc, ControllerContext.HttpContext.User.Identity.Name); if (!String.IsNullOrEmpty(errorViewData.Error)) return View("Error1", errorViewData); var merchant = _merchantHelper.CreateMerchantData(platnosc, payer, language, Session.SessionID); if (merchant == null || !String.IsNullOrEmpty(merchant.Error)) return View("Error1", _paymentsUtils.InitErrorViewData(_translateManager.Translate("tlumaczenia", "error_hash"), payer.Id_faktury)); var adres = _merchantHelper.GetUrl(merchant); Response.Redirect(adres); return new EmptyResult(); } } }