Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Conta
- {
- public int Id {get;set;}
- public int ClienteId {get;set;}
- public Cliente Cliente {get;set;}
- public int ContaBancariaId {get;set;}
- public ContaBancaria ContaBancaria {get;set;}
- public int PlanoId {get;set;}
- public Plano Plano {get;set;}
- public string Descricao {get;set;}
- public DateTime Data {get;set;}
- public decimal Valor {get;set;}
- }
- public class ContaBusca
- {
- public AgruparPor AgruparPor {get;set;}
- }
- public enum AgruparPor
- {
- Cliente,
- ContaBancaria,
- Plano
- }
- public class ContaResultadoBusca
- {
- public string Nome {get;set;} //Pode ser o nome do Cliente, Conta Bancaria ou Plano
- public List<ContaResultadoBuscaItem> Contas {get;set;}
- }
- public class ContaResultadoBuscaItem
- {
- public string Descricao {get;set;}
- public DateTime Data {get;set;}
- public decimal Valor {get;set;}
- }
- public class ContaServico
- {
- public ContaResultadoBusca AgruparPor(AgruparPor agrupador)
- {
- if (agrupador == AgruparPor.Cliente)
- {
- return dbo.Contas.GroupBy(conta => conta.Cliente).Select(conta => new ContaResultadoBusca { Nome = conta.Nome })..
- }
- if(agrupador == AgruparPor.ContaBancaria)
- {
- return dbo.Contas.GroupBy(conta => conta.ContaBancaria).Select(conta => new ContaResultadoBusca { Nome = conta.Nome })..
- }
- }
- }
- Func<Conta, object> func = (conta) =>
- {
- switch (model.GroupBy)
- {
- case AgruparPor.Cliente:
- return conta.Cliente;
- case AgruparPor.ContaBancaria:
- return conta.ContaBancaria;
- default:
- return conta.Cliente;
- }
- };
- db.Contas.GroupBy(func)
Add Comment
Please, Sign In to add comment