public override async Task <Option <IPagedResult <ObterBancosQueryResult> > > Handle(ObterBancosQuery request, CancellationToken cancellationToken) { return(await GetUsingDapper(request).ConfigureAwait(false)); }
private async Task <Option <IPagedResult <ObterBancosQueryResult> > > GetUsingDapper(ObterBancosQuery request) { const string sql = @" SELECT COUNT(*) FROM Bancos; SELECT Id, Codigo, Nome, NomeCurto FROM Bancos LIMIT @count OFFSET @skip;"; var sqlParameters = new { skip = request.GetSkip(), count = request.Results }; using (var multiResults = await _context.Database .GetDbConnection() .QueryMultipleAsync(sql, sqlParameters)) { var total = await multiResults.ReadFirstOrDefaultAsync <long>(); var records = await multiResults.ReadAsync <ObterBancosQueryResult>(); var pagedResult = PagedResult <ObterBancosQueryResult> .Create(records, request.Page, request.Results, total); return(Option.Some <IPagedResult <ObterBancosQueryResult> >(pagedResult)); } }
public async Task <IActionResult> GetAll([FromQuery] ObterBancosQuery query) { var response = await Dispatcher.Send(query); return(response.AsHttpResponse(HttpContext)); }