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);
        }
예제 #2
0
 public void OnGet(SearchCustomerDiscountVM search)
 {
     Products  = new SelectList(_productApplication.GetProductModelForSearch(), "Id", "Name");
     Discounts = _customerDiscountApplication.GetAllForAdmin(search);
 }