public IActionResult List()

in src/Modules/SimplCommerce.Module.Pricing/Areas/Pricing/Controllers/CartRuleUsageApiController.cs [24:81]


        public IActionResult List([FromBody] SmartTableParam param)
        {
            IQueryable<CartRuleUsage> query = _cartRuleUsageRepository
                .Query();

            if (param.Search.PredicateObject != null)
            {
                dynamic search = param.Search.PredicateObject;
                if (search.RuleName != null)
                {
                    string ruleName = search.RuleName;
                    query = query.Where(x => x.CartRule.Name.Contains(ruleName));
                }

                if (search.CouponCode != null)
                {
                    string couponCode = search.CouponCode;
                    query = query.Where(x => x.Coupon.Code.Contains(couponCode));
                }

                if (search.FullName != null)
                {
                    string fullName = search.FullName;
                    query = query.Where(x => x.User.FullName.Contains(fullName));
                }

                if (search.CreatedOn != null)
                {
                    if (search.CreatedOn.before != null)
                    {
                        DateTimeOffset before = search.CreatedOn.before;
                        query = query.Where(x => x.CreatedOn <= before);
                    }

                    if (search.CreatedOn.after != null)
                    {
                        DateTimeOffset after = search.CreatedOn.after;
                        query = query.Where(x => x.CreatedOn >= after);
                    }
                }
            }

            var cartRuleUsages = query.ToSmartTableResult(
                param,
                x => new
                {
                    x.Id,
                    x.CartRuleId,
                    CartRuleName = x.CartRule.Name,
                    x.UserId,
                    x.User.FullName,
                    CouponCode = x.Coupon.Code,
                    x.OrderId,
                    x.CreatedOn
                });

            return Json(cartRuleUsages);
        }