예제 #1
0
        public ActionResult MakeOrder(OrderViewModel obj)
        {
            Thread.Sleep(100);
            if (obj.NewPostCity != null && obj.NewPostOffice == null)
            {
                ModelState.AddModelError("NewPostOffice", "Выберите отделение для доставки");
            }

            //if (obj.DeliveryMethod == "NewPost" && obj.NewPostCity == null)
            //{
            //    ModelState.AddModelError("NewPostCity", "Выберите город");
            //}

            //if (obj.DeliveryMethod == "NewPost" && obj.NewPostOffice == null)
            //{
            //    ModelState.AddModelError("NewPostOffice", "Выберите отделение \"Новой почты\"");
            //}

            //if (obj.DeliveryMethod == "Courier" && obj.DeliveryCity == null)
            //{
            //    ModelState.AddModelError("DeliveryCity", "Введите город");
            //}

            //if (obj.DeliveryMethod == "Courier" && obj.DeliveryAdress == null)
            //{
            //    ModelState.AddModelError("DeliveryAdress", "Введите адрес доставки");
            //}

            if (ModelState.IsValid)
            {
                //if(obj.DeliveryMethod=="NewPost")
                //{
                //    obj.DeliveryCity = null;
                //    obj.DeliveryAdress = null;
                //}

                //if (obj.DeliveryMethod=="Courier")
                //{
                //    obj.NewPostCity = null;
                //    obj.NewPostOffice = null;
                //}
                var           dataForPrice = dataForPriceRepo.GetData();
                CartViewModel cart         = Cart;
                obj.DeliveryPrice             = cart.InfoCart.TotalPriceOfProducts < 700 ? dataForPrice.DeliveryFixedComission : 0;
                obj.TotalPriceOfAllProducts   = cart.InfoCart.TotalPriceOfProducts;
                obj.TotalQuantityOfAllParfums = cart.InfoCart.TotalQuantityOfProducts;


                foreach (var item in cart.Products)
                {
                    RealShop.Models.OrderViewModel.ProductsInOrderViewModel product = new RealShop.Models.OrderViewModel.ProductsInOrderViewModel();
                    product.CategoryId   = item.obj.CategoryId;
                    product.CategoryName = item.obj.CategoryName;
                    product.ProductId    = item.obj.ProductId;
                    product.ProductName  = item.obj.ProductName + " " + item.Size;
                    if (item.Color != null)
                    {
                        product.ProductName += " " + item.Color.ColorName;
                    }
                    product.ImageData     = item.obj.ImageData;
                    product.ImageMimeType = item.obj.ImageMimeType;
                    product.Quantity      = item.Quantity;
                    product.TotalPrice    = item.TotalPrice;
                    obj.ProductInOrder.Add(product);
                }

                Order ord = Mapper.Map <Order>(obj);
                if (ord == null)
                {
                    return(PartialView(obj));
                }
                ord.OrderState = "New";
                obj.OrderId    = orderrepo.AddOrder(ord);
                cart.RemoveAllFromCart();

                //Отправка почты при успешной валидации модели
                var Email = new EmailViewModel
                {
                    order = obj
                };

                Email.Send();
                return(PartialView("MakeOrderPost", obj));
            }

            else
            {
                return(PartialView(obj));
            }
        }