public IHttpActionResult Get(
            [FromUri] SpecialOwnerFilterModel filter,
            [FromUri] PageInfoModel pageInfo)
        {
            filter   = filter ?? new SpecialOwnerFilterModel();
            pageInfo = pageInfo ?? new PageInfoModel();
            PagedResult <SpecialOwnerDto> pagedResult;

            var paging = MappingHelper.MapToPageInfo(pageInfo);

            if (!paging.OrderBy.IsValidFor(_repo.Columns))
            {
                return(BadRequest($"Unknown field : {paging.OrderBy.Name}."));
            }

            if (filter.IsEmpty())
            {
                pagedResult = _repo.PagedQuery(paging);

                return(CreateActionResultFor(pagedResult));
            }

            // Apply filter.
            var query = MapToQuery(filter);

            pagedResult = _repo.PagedQuery(paging, query);

            return(CreateActionResultFor(pagedResult));
        }
 private static SpecialOwnerQuery MapToQuery(SpecialOwnerFilterModel filter) =>
 new SpecialOwnerQuery
 {
     CreatedBy  = filter.CreatedBy,
     ModifiedBy = filter.ModifiedBy,
     Name       = filter.Name,
     Remark     = filter.Remark
 };