static void Main(string[] args) { try { var meusClientes = IncluirMeusClientes(); var meusServicos = IncluirMeusServicos(); var meusFuncionarios = IncluirFuncionarios(meusServicos); meusFuncionarios.ExcluirServicoDeUmFuncionario(10, 1); //meusClientes.AlterarUmCliente(1, "Diego", "199999999"); //meusClientes.ExcluirUmCliente(2); List <Agendamento> agenda = new List <Agendamento>(); agenda.Add(new Agendamento { Id = 2, ServicoSolicitado = new ServicoSolicitado { Id = 2, Servico = meusServicos.Servicos.First() }, DtAgendamento = new DateTime(2021, 1, 29, 12, 0, 0) }); agenda.Add(new Agendamento { Id = 2, ServicoSolicitado = new ServicoSolicitado { Id = 3, Servico = meusServicos.Servicos.First() }, DtAgendamento = new DateTime(2021, 1, 29, 11, 0, 0), Status = Agendamento.StatusAgenda.CanceladoPeloCliente }); Agendamento agendamento = new Agendamento(); agendamento.IncluirAgendamento(1, meusClientes.Clientes.First(), new ServicoSolicitado { Id = 1, Servico = meusServicos.Servicos.First() }, new DateTime(2021, 1, 29, 10, 0, 0), agenda); } catch (IOException) { Console.WriteLine("Ocorreu um erro. Tente novamente mais tarde. "); } catch (ArgumentNullException nrEx) { Console.WriteLine("Aqui caiu a Null Reference!"); throw; } catch (Exception) { Console.WriteLine("Deu ruim!!!"); //throw; } Console.WriteLine("Continuando..."); Console.ReadLine(); }
static void Main(string[] args) { try { var meusClientes = IncluirMeusClientes(); var meusServicos = IncluirMeusServicos(); var meusFuncionarios = IncluirFuncionarios(meusServicos); meusFuncionarios.ExcluirServicoDeUmFuncionario(10, 1); List <Agendamento> agenda = new List <Agendamento>(); agenda.Add(new Agendamento { Id = 2, ServicoSolicitado = new ServicoSolicitado { Id = 2, Servico = meusServicos.Servicos.First(), Funcionario = meusFuncionarios.Funcionarios.First(f => f.Servicos.Contains(meusServicos.Servicos.First())) }, DtAgendamento = new DateTime(2021, 1, 29, 12, 0, 0) }); agenda.Add(new Agendamento { Id = 3, ServicoSolicitado = new ServicoSolicitado { Id = 3, Servico = meusServicos.Servicos.First(), Funcionario = meusFuncionarios.Funcionarios.First(f => f.Servicos.Contains(meusServicos.Servicos.First())) }, DtAgendamento = new DateTime(2021, 1, 29, 11, 0, 0), Status = Agendamento.StatusAgenda.CanceladoPeloCliente }); Agendamento agendamento = new Agendamento(); agendamento.IncluirAgendamento(1, meusClientes.Clientes.First(), new ServicoSolicitado { Id = 1, Servico = meusServicos.Servicos.First(), Funcionario = meusFuncionarios.Funcionarios.First(f => f.Servicos.Contains(meusServicos.Servicos.First())) }, new DateTime(2021, 1, 29, 10, 0, 0), agenda); decimal valorTotalMensal = agenda.Where(a => a.DtAgendamento.Value.Year == 2021 && a.DtAgendamento.Value.Month == 1 && (a.Status != StatusAgenda.CanceladoPeloSalao && a.Status != StatusAgenda.CanceladoPeloCliente)).Sum(p => p.ServicoSolicitado.Servico.Preco); //cria uma lista retirando os cancelados List <Agendamento> agendamentosEfetuados = agenda.FindAll(a => a.Status != StatusAgenda.CanceladoPeloSalao && a.Status != StatusAgenda.CanceladoPeloCliente); //cria Dictionary para acumular o valor total de servico em cada funcionario Dictionary <Funcionario, decimal> valorFuncionarioTotal = new Dictionary <Funcionario, decimal>(); foreach (Agendamento agendamentoEfetuado in agendamentosEfetuados) { if (!valorFuncionarioTotal.ContainsKey(agendamentoEfetuado.ServicoSolicitado.Funcionario)) { valorFuncionarioTotal.Add(agendamentoEfetuado.ServicoSolicitado.Funcionario, 0); } //soma o valor do servico valorFuncionarioTotal[agendamentoEfetuado.ServicoSolicitado.Funcionario] += agendamentoEfetuado.ServicoSolicitado.Servico.Preco; } } catch (IOException) { Console.WriteLine("Ocorreu um erro. Tente novamente mais tarde. "); } catch (ArgumentNullException nrEx) { Console.WriteLine("Aqui caiu a Null Reference!"); throw; } catch (Exception) { Console.WriteLine("Deu ruim!!!"); //throw; } Console.WriteLine("Continuando..."); Console.ReadLine(); }