public IHttpActionResult Get( [FromUri] AssetHistoryFilterModel filter, [FromUri] PageInfoModel pageInfo) { filter = filter ?? new AssetHistoryFilterModel(); pageInfo = pageInfo ?? new PageInfoModel(); PagedResult <AssetHistoryDto> pagedResult; var paging = MappingHelper.MapToPageInfo(pageInfo); if (!paging.OrderBy.IsValidFor(_assetHistoryRepo.Columns)) { return(BadRequest($"Unknown field : {paging.OrderBy.Name}.")); } if (filter.IsEmpty()) { pagedResult = _assetHistoryRepo.PagedQuery(paging); return(CreateActionResultFor(pagedResult)); } // Apply filter. var query = MapToQuery(filter); pagedResult = _assetHistoryRepo.PagedQuery(paging, query); return(CreateActionResultFor(pagedResult)); }
private static AssetHistoryQuery MapToQuery(AssetHistoryFilterModel filter) => new AssetHistoryQuery { AssetId = filter.AssetId, Tag = filter.Tag };