Пример #1
0
        public static SaleItemViewModel Convert(SaleItem saleItem)
        {
            SaleItemViewModel model = new SaleItemViewModel();

            model.Id              = saleItem.Id;
            model.ProductId       = saleItem.ProductId;
            model.CustomProductId = saleItem.CustomProductId;
            model.ExpireDate      = saleItem.ExpireDate;
            model.PromoCodeId     = saleItem?.PromoCodeId;
            if (saleItem.PromoCodeId != null)
            {
                model.PromoCode = PromoCodeConverter.Convert(saleItem.PromoCode);
            }
            model.SpecialOfferId = saleItem?.SpecialOfferId;
            if (saleItem.SpecialOfferId != null)
            {
                model.SpecialOffer = SpecialOfferConverter.Convert(saleItem.SpecialOffer);
            }
            model.Type = saleItem.Type;
            if (saleItem.SalePrice != null)
            {
                model.SalePrice = (decimal)saleItem.SalePrice;
            }
            model.DiscountValue = saleItem.DiscountValue;

            return(model);
        }
Пример #2
0
        public async Task <List <ProductViewModel> > GetAllProductsAsync(CancellationToken ct = default)
        {
            // retrieve all products that are available
            List <Product> products = await this._productRepository.GetAllAsync(ct);

            List <ProductViewModel> productsView = new List <ProductViewModel>();

            // check if item has any sales
            foreach (Product product in products)
            {
                ProductViewModel productView = ProductConverter.Convert(product);
                if (product.IsOnSale == true)
                {
                    List <SaleItem> sales = await this._saleItemRepository.GetByProductId(product.Id);

                    List <SaleItemViewModel> saleViews = new List <SaleItemViewModel>();
                    foreach (SaleItem sale in sales)
                    {
                        // if sale is valid
                        if (sale.ExpireDate > DateTime.Now)
                        {
                            SaleItemViewModel saleView = SaleItemConverter.Convert(sale);
                            saleViews.Add(saleView);
                        }
                    }
                    productView.Sales = saleViews;
                }

                productsView.Add(productView);
            }

            return(productsView);
        }
Пример #3
0
        private async Task <CustomProductViewModel> GetCustomSackProdctAsync(CancellationToken ct = default)
        {
            CustomProduct customSack = await this._customProductRepository.GetCustomSackAsync(ct);

            List <MixCategory> mixCategories = await this._mixCategoryRepository.GetAllByProductIdAsync(customSack.Id);

            foreach (MixCategory category in mixCategories)
            {
                category.Ingredients = await this._ingredientRepository.GetAllByMixCategoryIdAsync(category.Id, ct);
            }

            customSack.MixCategories = mixCategories;

            CustomProductViewModel customSackView = CustomProductConverter.Convert(customSack);

            if (customSackView.IsOnSale == true)
            {
                List <SaleItem> sales = await this._saleItemRepository.GetByCustomProductId(customSack.Id);

                List <SaleItemViewModel> saleViews = new List <SaleItemViewModel>();
                foreach (SaleItem sale in sales)
                {
                    SaleItemViewModel saleView = SaleItemConverter.Convert(sale);
                    // if sale item is a promo code
                    if (sale.Type == OfferType.PromoCode)
                    {
                        // ensure promo code id exists on
                        if (String.IsNullOrEmpty(sale.PromoCodeId) == false)
                        {
                            PromoCodeViewModel promoViewModel = PromoCodeConverter.Convert(await this._promoCodeRepository.GetByIdAsync(sale.PromoCodeId, ct));
                            // check if promo is valid
                            if (promoViewModel.ExpireDate > DateTime.Now)
                            {
                                saleView.PromoCode = promoViewModel;
                                saleViews.Add(saleView);
                            }
                        }
                    }
                    else
                    {
                        // if sale is valid
                        if (sale.ExpireDate > DateTime.Now)
                        {
                            saleViews.Add(saleView);
                        }
                    }
                }
                customSackView.Sales = saleViews;
            }

            return(customSackView);
        }
Пример #4
0
        public ActionResult View(int id)
        {
            if (TempData.Keys.Contains("Message"))
            {
                ViewBag.Message = TempData["Message"];
                TempData.Remove("Message");
            }

            var model = new SaleItemViewModel();

            model.Sale  = _saleService.GetByID(id);
            model.Notes = _noteService.GetByType(id, NoteType.Sale);

            return(View(model));
        }
Пример #5
0
        public IActionResult AddItem([FromForm] SaleItem saleItem)
        {
            if (ModelState.IsValid)
            {
                Sale sale = _salesRepository.GetSaleById(saleItem.SaleId);

                _salesRepository.AddItem(saleItem);

                return(RedirectToAction("Details", "Sale", new { id = saleItem.SaleId }));
            }

            SaleItemViewModel saleItemViewModel = new SaleItemViewModel
            {
                ProductNamesListItem = new List <SelectListItem>(),
                SaleItem             = saleItem
            };

            saleItemViewModel.ProductNamesListItem = GetProductNamesListItem();

            return(View(saleItemViewModel));
        }
Пример #6
0
        public IActionResult AddItem([FromQuery] int saleId)
        {
            Sale sale = _salesRepository.GetSaleById(saleId);

            if (sale == null)
            {
                return(NotFound());
            }

            SaleItemViewModel saleItemViewModel = new SaleItemViewModel
            {
                ProductNamesListItem = new List <SelectListItem>(),
                SaleItem             = new SaleItem()
                {
                    SaleId = sale.Id
                }
            };

            saleItemViewModel.ProductNamesListItem = GetProductNamesListItem();

            return(View(saleItemViewModel));
        }