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