public override HttpResponseMessage Query(SearchRequest request) { ItemMonitoramentoResponse response = new ItemMonitoramentoResponse(); var expression = QueryBuilder.BuildQueryExpression <ItemMonitoramentoDTO>(request.Filter, false, null); var result = this._service.Buscar(expression, request.OrderBy, request.SortDirection, request.RecordsPerPage * request.PageNumber, ((request.PageNumber - 1) * request.RecordsPerPage)); if ((result?.Itens.Any()).GetValueOrDefault()) { response = result.Itens.GroupBy(x => new { x.DataMonitoramento, x.IdPrograma }, (g, itens) => new ItemMonitoramentoResponse { DataMonitoramento = g.DataMonitoramento.ToShortDateString(), IdPrograma = g.IdPrograma.GetValueOrDefault(), Data = _itemConverter.ToViewModel(itens).ToList(), TotalRecords = result.TotalRecords, TotalPages = (result.TotalRecords > 0 && result.TotalRecords <= result.RecordsPerPage) ? 1 : (int)Math.Ceiling((double)result.TotalRecords / result.RecordsPerPage) }).Single(); DateTime dataMonitoramento = Convert.ToDateTime(response.DataMonitoramento); var resumo = this._indicadoresService.Buscar(x => x.DataMonitoramento == dataMonitoramento && x.Id == response.IdPrograma).FirstOrDefault(); response.JustificativasPendentes = resumo.JustificativasPendentes; response.NomePrograma = resumo.NomePrograma; response.QuantidadeAlertas = resumo.QuantidadeAlertas; response.QuantidadeAlertasItens = resumo.QuantidadeAlertasItens; response.QuantidadeItens = resumo.QuantidadeItens; response.TipoConsumoAutonomia = resumo.TipoConsumoAutonomia; response.TipoConsumoSaldoZerado = resumo.TipoConsumoSaldoZerado; response.Percentual = $"{((resumo.QuantidadeAlertasItens * 100) / resumo.QuantidadeItens)} %"; } return(ToJson(response)); }
public virtual async Task <HttpResponseMessage> Get() { var result = await _service.BuscarTodosAsync(); return(ToJson(_entityConverter.ToViewModel(result))); }