public async Task <JsonResult> RequestProducts() { DateTime startDateTime = DateTime.Today; DateTime endDateTime = DateTime.Today.AddDays(1).AddTicks(-1); var products = await _context.Products.Where(p => p.IsArchived == false).ToListAsync(); List <ReturnProductsModel> requests = new List <ReturnProductsModel>(); if (products != null) { foreach (var p in products) { var prod = new ReturnProductsModel { Quantity = 0, ProductName = p.ProductName, ProductID = p.ProductID }; requests.Add(prod); } } foreach (var r in requests) { var cartItems = await _context.CartItems.Where(req => req.ProductID == r.ProductID && req.IsRequested == true).ToListAsync(); if (cartItems != null) { foreach (var ci in cartItems) { var request = await _context.Requests.FirstOrDefaultAsync(re => re.CartItemID == ci.CartItemID); if (request.RequestDate >= startDateTime && request.RequestDate <= endDateTime) { r.Quantity += ci.Quantity; } } } } requests = requests.OrderByDescending(r => r.Quantity).Take(5).ToList(); return(Json(requests)); }
public async Task <JsonResult> ReturnProducts() { DateTime startDateTime = DateTime.Today; DateTime endDateTime = DateTime.Today.AddDays(1).AddTicks(-1); var products = await _context.Products.Where(p => p.IsArchived == false).ToListAsync(); List <ReturnProductsModel> returns = new List <ReturnProductsModel>(); if (products != null) { foreach (var p in products) { var prod = new ReturnProductsModel { Quantity = 0, ProductName = p.ProductName, ProductID = p.ProductID }; returns.Add(prod); } } foreach (var r in returns) { var returnsFromDb = await _context.Returns.Where(ret => ret.ProductID == r.ProductID && ret.DateReturned >= startDateTime && ret.DateReturned <= endDateTime).ToListAsync(); if (returnsFromDb != null) { foreach (var rfdb in returnsFromDb) { r.Quantity += rfdb.Quantity; } } } returns = returns.OrderByDescending(r => r.Quantity).Take(5).ToList(); return(Json(returns)); }