public ActionResult SelectParts(CustomizeProductViewModel viewModel) { var selectedPartList = viewModel.Product.Parts.Where(p => p.IsSelected == true).ToList(); if(selectedPartList!=null) { var deliveryDate = DateTime.Now.AddDays(selectedPartList.OrderByDescending(d => d.LeadTime).First().LeadTime); int productId = viewModel.Product.Id; StringBuilder productCode = new StringBuilder(); decimal productPrice = 0; bool isReady = false; var userID = _userService.Get(HttpContext.User.Identity.Name).Entity; foreach(var part in selectedPartList) { productPrice += part.Price; isReady = deliveryDate > DateTime.Now ? false : true; productCode.Append(part.StockKeepingUnit.Substring(0,2)); } var order = new Order { Product = _productService.GetProduct(viewModel.Product.Id), DeliveryDate = deliveryDate, IsReady = isReady, Price = productPrice, ProductId = productId, User = userID }; _orderService.AddOrder(order); } return View("~/Views/User/SelectParts.cshtml"); }
public ActionResult SelectParts(int id) { var product = _productService.GetProduct(id); var viewModel = new CustomizeProductViewModel() { Product = new ProductModel(product) }; viewModel.Product.Parts = product.Parts.Select(p => new PartModel(p)).OrderBy(m => m.CategoryId).ToList(); return View("~/Views/User/SelectParts.cshtml", viewModel); }
public ActionResult SelectParts(CustomizeProductViewModel viewModel) { var selectedPartList = viewModel.Product.Parts.Where(p => p.IsSelected == true).ToList(); var totalCat = viewModel.Product.Parts.Select(p => p.CategoryId).Distinct().ToArray(); // Setup so that one part of every category must be selected before completion if (selectedPartList.Count() != totalCat.Count()) { return View(viewModel); } var partList = new List<Part>(); foreach (var item in selectedPartList) { partList.Add(_productService.GetProduct(viewModel.Product.Id).Parts.SingleOrDefault(p => p.Id == item.Id)); } if (partList != null || partList.Count > 0) { double orderLeadtime = new double(); foreach (var item in partList) { orderLeadtime += item.LeadTime; } StringBuilder productCode = new StringBuilder(); var order = new Order() { Product = _productService.GetProduct(viewModel.Product.Id), DeliveryDate = DateTime.Now.AddDays(orderLeadtime), IsReady = false, User = _userService.Get(HttpContext.User.Identity.Name).Entity }; foreach (var part in partList) { order.Price += part.Price; order.IsReady = order.DeliveryDate > DateTime.Now ? false : true; productCode.Append(part.StockKeepingUnit); } order.ProductCode = productCode.ToString(); _orderService.AddOrder(order); } return RedirectToAction("OrderList"); }
public ActionResult ConfigureProduct() { var viewModel = new CustomizeProductViewModel { Products = _productService.GetAllProducts().Select(p => new ProductViewModel(p)).ToList() }; return View("~/Views/User/ConfigureProduct.cshtml", viewModel); }
public ActionResult CustomizeProduct() { var viewModel = new CustomizeProductViewModel { Products = _productService.GetAllProducts().Select(p => new ProductModel(p)).ToList() }; return View(viewModel); }