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)); } }