3
What could I do to improve this code? Sonarqube indicates that I should refactor this code, but does not present any suggestions:
var dados = Set.Where(s => s.Id > 0);
if (filtro.IdSolicitacao > 0)
{
dados = dados.Where(d => d.Id == filtro.IdSolicitacao);
}
else
{
if (filtro.IdFornecedor != 0)
dados = dados.Where(d => d.IdPessoa == filtro.IdFornecedor);
if (filtro.IdUsuarioSolicitacao != 0)
dados = dados.Where(d => d.IdUsuarioSolicitacao == filtro.IdUsuarioSolicitacao);
if (filtro.IdUsuarioAutorizacao != 0)
dados = dados.Where(d => d.IdUsuarioAutorizacao == filtro.IdUsuarioAutorizacao);
if (filtro.DataInicioSolicitacao != null)
dados = dados.Where(d => d.DataSolicitacao >= filtro.DataInicioSolicitacao);
if (filtro.DataFinalSolicitacao != null)
dados = dados.Where(d => d.DataSolicitacao <= filtro.DataFinalSolicitacao);
if (filtro.DataInicioAutorizacao != null)
dados = dados.Where(d => d.DataAutorizacao >= filtro.DataInicioAutorizacao);
if (filtro.DataFinalAutorizacao != null)
dados = dados.Where(d => d.DataAutorizacao <= filtro.DataFinalAutorizacao);
if (filtro.DataInicioVctoSolicitacao != null)
dados = dados.Where(d => d.DataPagamentoAntecipacao >= filtro.DataInicioVctoSolicitacao);
if (filtro.DataFinalVctoSolicitacao != null)
dados = dados.Where(d => d.DataPagamentoAntecipacao <= filtro.DataFinalVctoSolicitacao);
if (filtro.SituacaoSolicitacao != null)
{
var situacao = (SituacaoAntecipacaoFundoFinanceiro)filtro.SituacaoSolicitacao;
dados = dados.Where(d => d.SituacaoSolicitacao == situacao);
}
}
Maybe putting it all on one LINQ command.
– João Martins