public static void AddPaging(this HttpContext httpContext, IPagingResult pagingResult) { if (httpContext == null) { return; } if (pagingResult == null) { throw new ArgumentNullException(nameof(pagingResult)); } httpContext.Response.Headers.Add(HeaderNumberOfPagesName, pagingResult.TotalItems.ToString(CultureInfo.InvariantCulture)); }
public QueryResult(object data, IPagingResult paging = null, string message = null) : base(message) { Data = data; Paging = paging; }
protected override async ValueTask <IResult <GetTransactionsQueryOutput> > HandleImpl(GetTransactionsQuery request, CancellationToken cancellationToken) { IPagingResult paging = null; var order = request.Order ?? Order.Descending; var query = _transactionRepository.GetAll(); if (request.Filter != null) { if (request.Filter.From.HasValue) { query = query.Where(t => t.CreatedAt >= request.Filter.From.Value); } if (request.Filter.To.HasValue) { query = query.Where(t => t.CreatedAt <= request.Filter.To.Value); } if (request.Filter.AssetId.HasValue) { query = query.Where(t => t.AssetId == request.Filter.AssetId.Value); } if (request.Filter.GroupId.HasValue) { query = query.Where(t => t.Asset.GroupId == request.Filter.GroupId.Value); } } query = order == Order.Descending ? query.OrderByDescending(t => t.CreatedAt) : query.OrderBy(t => t.CreatedAt); if (request.Paging != null) { var totalTrans = await query.CountAsync(cancellationToken) .ConfigureAwait(false); query = query.Skip((int)(request.Paging.Page * request.Paging.Items)) .Take((int)request.Paging.Items); paging = new PagingResult(totalTrans); } var transactions = await query.ToListAsync(cancellationToken) .ConfigureAwait(false); var currencies = await _currencyRepository.GetAll() .ToListAsync(cancellationToken) .ConfigureAwait(false); var assets = await _assetRepository.GetAll() .ToListAsync(cancellationToken) .ConfigureAwait(false); var groups = await _groupRepository.GetAll() .ToListAsync(cancellationToken) .ConfigureAwait(false); var models = transactions.Select(_mapper.Map <Transaction, TransactionModel>).ToList(); foreach (var model in models) { if (currencies.Found(model.CurrencyId, out var currency)) { model.Currency = _mapper.Map <Currency, CurrencyModel>(currency); } if (assets.Found(model.AssetId, out var asset)) { model.Asset = _mapper.Map <Asset, AssetModel>(asset); if (groups.Found(asset.GroupId, out var group)) { model.Asset.Group = _mapper.Map <Group, GroupModel>(group); } } if (model.FeeCurrencyId.HasValue && currencies.Found(model.FeeCurrencyId.Value, out var feeCurrency)) { model.FeeCurrency = _mapper.Map <Currency, CurrencyModel>(feeCurrency); } } var output = new GetTransactionsQueryOutput { Transactions = models, Paging = paging }; return(output.AsResult()); }