public virtual ActionResult Payment(int orderId, Guid userId)
        {
            var user = _userBusiness.Find(userId);

            ViewBag.PaymentGatewayId = int.Parse(AppSettings.DefaultPaymentGatewayId);//_paymentGatewayBusiness.GetAll().First().PaymentGatewayId;
            if (user == null)
            {
                return(View(MVC.Order.Views.NotFound));
            }
            var rep = SignIn(user, true);

            if (!rep.IsSuccessful)
            {
                return(View(MVC.Shared.Views.Error, (object)rep.Message));
            }
            var order = _orderBusiness.Find(orderId, "OrderItems,Transactions,User,Address");

            if (order == null || order.UserId != userId)
            {
                return(View(MVC.Order.Views.NotFound));
            }
            var priceCheck = CheckPrice(order);

            ViewBag.PayedPrice      = priceCheck.payedPrice;
            ViewBag.CompletePayment = priceCheck.payedPrice > 0;
            ViewBag.Price           = priceCheck.price;
            ViewBag.Addresses       = _addressBusiness.GetAll(userId);
            ViewBag.Warnings        = _pricingItemBusiness.Value.GetDescriptions(order.OrderItems?.Select(x => x.PricingItemId).ToList());
            return(View(order));
        }
Exemple #2
0
        public virtual ViewResult ZarinPalVerify(string Status, string Authority)
        {
            ViewBag.PaymentGateway = BankNames.ZarinPal;

            if (!string.IsNullOrEmpty(Status) && !string.IsNullOrEmpty(Authority))
            {
                var transaction = _transactionBusiness.Find(Authority.Trim());
                if (transaction.IsNull())
                {
                    ViewBag.ErrorMessage = LocalMessage.PaymentException;
                    return(View(viewName: MVC.Transaction.Views.Failed, model: transaction));
                }

                var _order  = _orderBusiness.Find(transaction.OrderId);
                var gateWay = _paymentGatewayBusiness.Find(transaction.PaymentGatewayId);
                if (gateWay.IsNull())
                {
                    ViewBag.ErrorMessage = LocalMessage.PaymentException;
                    return(View(viewName: MVC.Transaction.Views.Failed, model: transaction));
                }
                var result = PaymentFactory.GetInstance(gateWay.BankName).Verify(gateWay, transaction);
                if (result.IsSuccessful)
                {
                    return(View(viewName: MVC.Transaction.Views.Success, model: transaction));
                }
                ViewBag.ErrorMessage = result.Message;
                return(View(viewName: MVC.Transaction.Views.Failed, model: transaction));
            }
            ViewBag.ErrorMessage = LocalMessage.RedirectException;

            return(View(viewName: MVC.Transaction.Views.Failed, model: new Transaction()));
        }
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(View(ViewNamesConstant.FrontendHomeError));
            }
            Order Order = OrderBusiness.Find(id);

            if (Order == null)
            {
                return(View(ViewNamesConstant.FrontendHomeError));
            }
            ViewBag.Ecards = EcardBusiness.AllNoTracking.Where(x => x.Draft != true).ToList();
            return(View(ViewNamesConstant.AdminOrdersDetails, Order));
        }
        // GET: Orders/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Order Order = OrderBusiness.Find(id);

            if (Order == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Ecards = EcardBusiness.AllNoTracking.Where(x => x.Draft != true).ToList();
            return(View(ViewNamesConstant.AdminOrdersDetails, Order));
        }
        public virtual ViewResult Edit(int orderId)
        {
            ViewBag.Editable      = true;
            ViewBag.Client        = false;
            ViewBag.OrderStatuses = GetOrderStatusList();

            ViewBag.LangTypes = EnumExtension.FilterEnumWithAttributeOf <LangType, VisibleAttribute>().Select(x => new SelectListItem
            {
                Text  = x.GetDescription(),
                Value = x.GetDisplayName()
            }).ToList();

            var order = _orderBusiness.Find(orderId, "all");

            ViewBag.LangType = order.LangType;
            if (order == null)
            {
                return(View(MVC.Shared.Views.Error));
            }
            var details = _orderDetailBusiness.Value.GetAll(orderId);

            order.OrderItems.ForEach((item) => { item.OrderDetails = details.Where(x => x.OrderItemId == item.OrderItemId).ToList(); });
            var settingRep = _settingBusiness.Get();

            ViewBag.Location     = order.AddressId == null ? "35.701076,51.391528" : order.Address.Location;
            ViewBag.OfficeUserId = GetOfficeList(order.OfficeUserId);
            return(View(order));
        }
Exemple #6
0
        public virtual ActionResult CompleteOrder(int orderId, string block = "discount")
        {
            ViewBag.Block = block;

            var order = _orderBusiness.Find(orderId, "OrderItems");

            if (order == null)
            {
                return(View(MVC.Shared.Views.Error));
            }
            LoadRelatedInfo(true, order.LangType);
            ViewBag.LangType = order.LangType;
            var userId = (User as ICurrentUserPrincipal).UserId;

            if (userId != order.UserId)
            {
                return(RedirectToAction(MVC.Order.ActionNames.History, MVC.Order.Name));
            }
            return(View(order));
        }