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