public IActionResult Get()

in src/Modules/SimplCommerce.Module.Contacts/Areas/Contacts/Controllers/ContactApiController.cs [32:80]


        public IActionResult Get([FromBody] SmartTableParam param)
        {
            var query = _contactRepository.Query()
                .Where(x => !x.IsDeleted);

            if (param.Search.PredicateObject != null)
            {
                dynamic search = param.Search.PredicateObject;

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

                if (search.ContactAreaId != null)
                {
                    long id = search.ContactAreaId;
                    query = query.Where(x => x.ContactArea.Id == id);
                }

                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 contacts = query.ToSmartTableResult(
                param,
                x => new
                {
                    Id = x.Id,
                    FullName = x.FullName,
                    ContactArea = x.ContactArea.Name,
                    CreatedOn = x.CreatedOn,
                    Content = x.Content
                });
            return Json(contacts);
        }