Пример #1
0
        public async Task <ActionResult> Order(PurchaseViewModel purchaseModel)
        {
            // Insert new Customer into databse
            Customer customer = EntityFactory.CreateCustomer(purchaseModel.Customer.FullName, purchaseModel.Customer.Email, purchaseModel.Customer.PhoneNumber, purchaseModel.Customer.Address);
            var      result1  = await this.m_orderService.AddCustomerAsync(customer);

            var products = await m_orderService.GetProductsAsync();

            // Loading to model
            PurchaseViewModel model = new PurchaseViewModel(products);

            if (ModelState.IsValid)
            {
                //Change PurchaseViewModel to OrderDetailModel
                var orderDetail = purchaseModel.MapToOrderDetail();

                var counpond = await m_couponCodeManager.GetCouponCodeByIdAsync(orderDetail.CouponCodeId);      // Check if coupon code is existed

                var result = ServiceResult.Success;

                if (counpond == null)
                {
                    //Add OrderDetail to Cart
                    result = await m_orderService.AddToCartAsync(customer.Id, orderDetail.HepaProductId,
                                                                 orderDetail.NumberOfItems, null, orderDetail.KindOfPurchase);
                }
                else
                {
                    //Add OrderDetail to Cart
                    if (counpond.SaleOffAmount > 0)
                    {
                        result = await m_orderService.AddToCartAsync(customer.Id, orderDetail.HepaProductId,
                                                                     orderDetail.NumberOfItems, orderDetail.CouponCodeId, orderDetail.KindOfPurchase);

                        await m_couponCodeManager.DecreasingUsageAmountAsync(orderDetail.CouponCodeId);
                    }
                    else
                    {
                        result = await m_orderService.AddToCartAsync(customer.Id, orderDetail.HepaProductId,
                                                                     orderDetail.NumberOfItems, null, orderDetail.KindOfPurchase);
                    }
                }

                if (result == ServiceResult.Success)
                {
                    TempData["SuccessfulMessage"] = "Bạn đã đặt hàng thành công!";
                    return(RedirectToAction("Order", "Order"));
                }
                else
                {
                    ViewBag.OrderErrorMessage = result.Error;
                    return(View(model));
                }
            }
            return(View(model));
        }
Пример #2
0
        public async Task <ActionResult> Delete(string id)
        {
            var model = await m_couponCodeManager.GetCouponCodeByIdAsync(id);

            return(View(model));
        }