Пример #1
0
        public async Task <IActionResult> CompleteOrders(CompleteOrdersModel model)
        {
            if (!this.ModelState.IsValid)
            {
                this.TempData[TempDataErrorKey] = CompleteOrdersErrorMessage;

                return(this.RedirectToAction(nameof(this.CompleteOrders)));
            }

            string userId = this.GetUserId();

            ShoppingCartViewModel shoppingCartData = this.shoppingCartService
                                                     .FindByUserId <ShoppingCartViewModel>(userId);

            IEnumerable <string> orderIds = shoppingCartData.Orders
                                            .Select(order => order.Id);

            await this.contractService.CreateAsync(
                userId,
                model.CreditCompanyId,
                orderIds,
                shoppingCartData.Total,
                model.CreditCardNumber,
                model.PeriodInMonths);

            await this.orderService.CompleteOrdersAsync(orderIds);

            await this.shoppingCartService.EmptyCartAsync(userId);

            await this.dashboardHubContext.Clients.All
            .SendAsync(DashboardHub.ContractCreatedMethodName);

            return(this.RedirectToHome());
        }
Пример #2
0
        public IActionResult CompleteOrders()
        {
            string userId = this.GetUserId();

            ShoppingCartViewModel shoppingCartData = this.shoppingCartService
                                                     .FindByUserId <ShoppingCartViewModel>(userId);

            CompleteOrdersModel model = new CompleteOrdersModel
            {
                Total       = shoppingCartData.Total,
                OrdersCount = shoppingCartData.Orders.Count(),
            };

            if (model.OrdersCount == 0)
            {
                return(this.RedirectToAction(nameof(this.Index)));
            }

            return(this.View(model));
        }