public async Task <SaleModel> GetProductBestActiveSale(int SKU) { DateTime today = DateTime.Now; ProductModel product = await this.Products.FindAsync(SKU); if (product.Brand.Sales != null && product.Brand.Sales.Count != 0) { SaleModel bestSale = (from s in product.Brand.Sales where s.StartDate <= today && s.EndDate >= today select s).OrderByDescending((SaleModel a) => { return(a.Discount); }).First(); return(bestSale); } return(null); }
public async Task <IList <ProductModel> > GetAllProductsInSaleAsync(int SaleID) { List <ProductModel> products = new List <ProductModel>(); SaleModel sale = await this.Sales.FindAsync(SaleID); if (sale == null) { goto EndLabel; } foreach (BrandModel b in sale.BrandsOnSale) { products.AddRange(b.Products.ToList()); } EndLabel: return(products); }