internal static DadosExtraidos Executar(string nomeCaminhoArquivo) { var conteudoArquivo = File.ReadAllText(nomeCaminhoArquivo).Split(Environment.NewLine); var registro = new DadosExtraidos(); foreach (var linhaArquivo in conteudoArquivo) { var registrosLinha = linhaArquivo.Split(VariaveisDeAmbiente.DelimitadorRegistros); switch (registrosLinha[0]) { case TipoRegistroEnum.DadosVendedor: var factoryVendedor = new VendedorFactory(registrosLinha); registro.Vendedores.Add(factoryVendedor.FactoryMethod()); break; case TipoRegistroEnum.DadosCliente: var factoryCliente = new ClienteFactory(registrosLinha); registro.Clientes.Add(factoryCliente.FactoryMethod()); break; case TipoRegistroEnum.DadosVenda: var factoryVenda = new VendaFactory(registrosLinha); registro.Vendas.Add(factoryVenda.FactoryMethod()); break; } } return(registro); }
public static DadosAnalisados Executar(DadosExtraidos dadosExtraidos) { var analise = new DadosAnalisados { QuantidadeClientes = dadosExtraidos.Clientes.Count, QuantidadeVendedor = dadosExtraidos.Vendedores.Count }; var performanceVendedores = dadosExtraidos.Vendas .GroupBy(x => x.NomeVendedor) .ToDictionary( x => x.Key, x => x.Sum(x => x.ItemVenda.Sum(x => x.Preco))) .OrderBy(x => x.Value) .ToDictionary(x => x.Key, x => x.Value); analise.NomePiorPendedor = performanceVendedores.LastOrDefault().Key; analise.IdVendaMaisCara = dadosExtraidos.Vendas.OrderBy(v => v.ItemVenda.Sum(i => i.Preco)).FirstOrDefault().Id; return(analise); }