Esempio n. 1
0
        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");
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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");
        }
Esempio n. 4
0
        public ActionResult ConfigureProduct()
        {
            var viewModel = new CustomizeProductViewModel { Products = _productService.GetAllProducts().Select(p => new ProductViewModel(p)).ToList() };

            return View("~/Views/User/ConfigureProduct.cshtml", viewModel);
        }
Esempio n. 5
0
        public ActionResult CustomizeProduct()
        {
            var viewModel = new CustomizeProductViewModel { Products = _productService.GetAllProducts().Select(p => new ProductModel(p)).ToList() };

            return View(viewModel);
        }