Ejemplo 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"));
        }
Ejemplo n.º 2
0
        public ActionResult CustomizeProduct()
        {
            var viewModel = new CustomizeProductViewModel {
                Products = _productService.GetAllProducts().Select(p => new ProductModel(p)).ToList()
            };

            return(View(viewModel));
        }
Ejemplo n.º 3
0
        public ActionResult ConfigureProduct()
        {
            var viewModel = new CustomizeProductViewModel {
                Products = _productService.GetAllProducts().Select(p => new ProductViewModel(p)).ToList()
            };

            return(View("~/Views/User/ConfigureProduct.cshtml", viewModel));
        }
Ejemplo n.º 4
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"));
        }
Ejemplo n.º 5
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(viewModel));
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> CustomizeProduct(int id)
        {
            var productItem = _mapper.Map <ProductItemViewModel>(await _productItemService.GetProductItemAsync(id));
            var ingredients = _mapper.Map <List <IngredientViewModel> >(await _ingredientService.GetAllIngredientAsync());

            if (productItem.Product.Name == "Pizza")
            {
                ingredients.Remove(ingredients.Where(x => x.Name == "Bread").FirstOrDefault());
            }
            if (productItem.Product.Name == "Sandwich")
            {
                ingredients.Remove(ingredients.Where(x => x.Name == "PizzaBase").FirstOrDefault());
            }

            var customizeProductViewModel = new CustomizeProductViewModel()
            {
                ProductItemViewModel = productItem,
                Ingredients          = ingredients,
                Quantity             = 1
            };

            return(View(customizeProductViewModel));
        }