FiltroIpasgoService.cs 706 B

12345678910111213141516171819202122
  1. namespace AGEHAB.RelatorioSeadIpasgo.Domain.Services;
  2. public class FiltroIpasgoService : IIpasgoFiltroService
  3. {
  4. public IReadOnlyList<dynamic> Filtrar(IReadOnlyList<dynamic> linhas)
  5. {
  6. return linhas.Where(LinhaEhIpasgo).ToList();
  7. }
  8. private static bool LinhaEhIpasgo(dynamic linha)
  9. {
  10. var dict = (IDictionary<string, object>)linha;
  11. return ValorNaoNulo(dict, "D1700_DescMensIpasgoBasico") ||
  12. ValorNaoNulo(dict, "D1702_DescMensIpasgoEspecial");
  13. }
  14. private static bool ValorNaoNulo(IDictionary<string, object> dict, string coluna)
  15. {
  16. return dict.TryGetValue(coluna, out var valor) && valor != null && valor != DBNull.Value;
  17. }
  18. }