public IEnumerable <AdminCustomerDiscountVM> GetAllForAdmin(SearchCustomerDiscountVM search) { var products = _shopContext.Products.Select(p => new { Id = p.Id, Name = p.Name }).ToList(); var query = _context.CustomerDiscounts.Select(c => new AdminCustomerDiscountVM() { Id = c.Id, ProductId = c.ProductId, DiscountRate = c.DiscountRate, Reason = c.Reason, EndDate = c.EndDate.ToFarsi(), EndDateGr = c.EndDate, // ProductName = products.FirstOrDefault(p => p.Id == c.ProductId).Name, StartDate = c.StartDate.ToFarsi(), StartDateGr = c.StartDate, CreationDate = c.CreationTime.ToFarsi() }).AsQueryable(); if (search.ProductId != 0) { query = query.Where(x => x.ProductId == search.ProductId).AsQueryable(); } if (!string.IsNullOrWhiteSpace(search.StartDate)) { query = query.Where(x => x.StartDateGr > search.StartDate.ToGeorgianDateTime()).AsQueryable(); } if (!string.IsNullOrWhiteSpace(search.EndDate)) { query = query.Where(x => x.EndDateGr < search.EndDate.ToGeorgianDateTime()).AsQueryable(); } var discounts = query.ToList(); foreach (var discount in discounts) { discount.ProductName = products.Find(p => p.Id == discount.ProductId)?.Name; } return(discounts); }
public void OnGet(SearchCustomerDiscountVM search) { Products = new SelectList(_productApplication.GetProductModelForSearch(), "Id", "Name"); Discounts = _customerDiscountApplication.GetAllForAdmin(search); }