public async Task Run(IMapper mapper, IQueryable <TEF> q, DTO.StdCollectionInputs sci) { var tq = q; if (!sci.IncludeDeleted) { tq = OrmHelper.EqualToProperty <TEF>(tq, "Deleted", false); } tq = AddSearchParameters(tq, sci); TotalCount = tq.Count(); string sIncludeDeleted = sci.IncludeDeleted ? "true" : "false"; string QM = sci.Route.IndexOf("?") == -1 ? "?" : "&"; q = AddSearchParameters(q, sci); q = OrmHelper.AddStdCollectionParameters <TEF>(q, sci.Offset, sci.Limit, sci.IncludeDeleted, sci.Sort); Items = mapper.Map <TDTO[]>(await q.ToArrayAsync()); ItemCount = Items.Count(); Paging.Self = $"{sci.Offset}"; Paging.First = $"0"; if (sci.Limit < TotalCount && sci.Limit > 0) { if (sci.Offset > 0) { Paging.Prev = $"{(sci.Offset > 0 ? sci.Offset - sci.Limit : 0)}"; } if (sci.Offset < TotalCount) { Paging.Next = $"{(sci.Offset + sci.Limit)}"; Paging.Last = $"{(TotalCount - sci.Limit)}"; } if (sci.Offset + sci.Limit >= TotalCount) { Paging.Next = null; } } }