public async Task <IActionResult> CalculaRemuneracoes(DateTime inicio, DateTime fim, int pag = 1) { IEnumerable <IRemuneracao> remuneracoes; try { DateTime dataFimAjustada = new DateTime(fim.Date.Ticks).AddDays(1).AddSeconds(-1); PeriodoSimples periodoDoPagamentoDasHoras = new PeriodoSimples(inicio.Date, dataFimAjustada); remuneracoes = await _gerenciadorDeRemuneracao.CalcularRemuneracoesNoPeriodoAsync(periodoDoPagamentoDasHoras); //TODO reimplementar a paginação do backend (preferencialmente salvando a requisicao antes //var remuneracoesPorFavorecido = remuneracoes.GroupBy(rem => rem.IdFavorecido).OrderBy(g => g.Key); //const int pagesize = 10; //IEnumerable<IRemuneracao> pagina = remuneracoesPorFavorecido.Skip(pagesize * (pag - 1)).Take(pagesize).SelectMany(gr => gr).ToArray(); //return base.Ok(pagina); //filtro para exibir apenas remuneracoes do periodo selecionado. (O calculo gera as remuneracoes fixas recorrentes{baseado na vigencia da regra Fixa}) remuneracoes = remuneracoes.Where(x => periodoDoPagamentoDasHoras.Contem(x.DataDaEntrega)).OrderBy(x => x.IdFavorecido); return(base.Ok(remuneracoes)); } catch (Exception ex) { return(BadRequest(ex)); } }