Guest User

Untitled

a guest
Jan 22nd, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. public class Conta
  2. {
  3. public int Id {get;set;}
  4.  
  5. public int ClienteId {get;set;}
  6. public Cliente Cliente {get;set;}
  7.  
  8. public int ContaBancariaId {get;set;}
  9. public ContaBancaria ContaBancaria {get;set;}
  10.  
  11. public int PlanoId {get;set;}
  12. public Plano Plano {get;set;}
  13.  
  14. public string Descricao {get;set;}
  15. public DateTime Data {get;set;}
  16. public decimal Valor {get;set;}
  17. }
  18.  
  19. public class ContaBusca
  20. {
  21. public AgruparPor AgruparPor {get;set;}
  22.  
  23. }
  24. public enum AgruparPor
  25. {
  26. Cliente,
  27. ContaBancaria,
  28. Plano
  29. }
  30.  
  31. public class ContaResultadoBusca
  32. {
  33. public string Nome {get;set;} //Pode ser o nome do Cliente, Conta Bancaria ou Plano
  34. public List<ContaResultadoBuscaItem> Contas {get;set;}
  35. }
  36.  
  37. public class ContaResultadoBuscaItem
  38. {
  39. public string Descricao {get;set;}
  40. public DateTime Data {get;set;}
  41. public decimal Valor {get;set;}
  42. }
  43.  
  44. public class ContaServico
  45. {
  46. public ContaResultadoBusca AgruparPor(AgruparPor agrupador)
  47. {
  48. if (agrupador == AgruparPor.Cliente)
  49. {
  50. return dbo.Contas.GroupBy(conta => conta.Cliente).Select(conta => new ContaResultadoBusca { Nome = conta.Nome })..
  51. }
  52. if(agrupador == AgruparPor.ContaBancaria)
  53. {
  54. return dbo.Contas.GroupBy(conta => conta.ContaBancaria).Select(conta => new ContaResultadoBusca { Nome = conta.Nome })..
  55. }
  56.  
  57.  
  58. }
  59. }
  60.  
  61. Func<Conta, object> func = (conta) =>
  62. {
  63. switch (model.GroupBy)
  64. {
  65. case AgruparPor.Cliente:
  66. return conta.Cliente;
  67. case AgruparPor.ContaBancaria:
  68. return conta.ContaBancaria;
  69. default:
  70. return conta.Cliente;
  71. }
  72. };
  73. db.Contas.GroupBy(func)
Add Comment
Please, Sign In to add comment