static void Main(string[] args) { Console.WriteLine("Inicio da aplicação... LUCAS ALVES SELLIACH"); Console.WriteLine("========================================================================="); Console.WriteLine("Criando as depedencias tipo Singleton, simulando a injeção de dependência. "); var paises = new List <Pais>(); var pessoas = new List <Pessoa>(); var colaboradores = new List <Colaborador>(); var clientes = new List <Cliente>(); var pets = new List <Pet>(); var servicos = new List <Servico>(); IPaisRepository paisRepository = new PaisRepository(paises); IPessoaRepository pessoaRepository = new PessoaRepository(pessoas); IColaboradorRepository colaboradorRepository = new ColaboradorRepository(colaboradores); IClienteRepository clienteRepository = new ClienteRepository(clientes); IPetRepository petRepository = new PetRepository(pets); IServicoRepository servicoRepository = new ServicoRepository(servicos); Console.WriteLine("========================================================================="); Console.WriteLine("Criação do PAÍS pelo operador do sistema, para simples teste... "); //Depedencia tipo Scoped IPaisValidation paisValidation = new PaisValidation(); IPaisService paisService = new PaisService(paisRepository, paisValidation); var pais = new Pais("teste", "teste"); paisService.Criar(pais); Console.WriteLine("Pais Criado!"); Console.WriteLine("======================"); Console.WriteLine("Paises cadastrados: "); foreach (var paisConsultado in paisService.ConsultarTodos()) { Console.WriteLine("Codigo: " + paisConsultado.Codigo); Console.WriteLine("Nome: " + paisConsultado.Nome); Console.WriteLine("Idioma: " + paisConsultado.Idioma); Console.WriteLine("-----------------------"); } Console.WriteLine("========================================================================="); Console.WriteLine("========================================================================="); Console.WriteLine("Criação do Colaborador pelo operador do sistema, para simples teste... "); //Depedencia tipo Scoped IColaboradorValidation colaboradorValidation1 = new ColaboradorValidation(); IColaboradorService colaboradorService1 = new ColaboradorService(colaboradorRepository, colaboradorValidation1, pessoaRepository); var pessoaFisicaColaborador = new PessoaFisica("Colaboradorzinho", "688.404.530-24", "99999999", DateTime.Now, "*****@*****.**", "99 9999-9999", "99 99999-9999", "Teste de sistema", "teste", 0, "teste", "teste", "teste", "teste", "SC", pais); var colaborador1 = new Colaborador(pessoaFisicaColaborador, "Veterinário"); colaboradorService1.Criar(colaborador1); Console.WriteLine("Colaborador 1 pessoa fisica Criada!"); //Depedencia tipo Scoped IColaboradorValidation colaboradorValidation2 = new ColaboradorValidation(); IColaboradorService colaboradorService2 = new ColaboradorService(colaboradorRepository, colaboradorValidation2, pessoaRepository); var pessoaFisicaColaborador2 = new PessoaFisica("Colaboradorzinho 2", "688.404.530-24", "99999999", DateTime.Now, "*****@*****.**", "99 9999-9999", "99 99999-9999", "Teste de sistema", "teste", 0, "teste", "teste", "teste", "teste", "SC", pais); var colaborador2 = new Colaborador(pessoaFisicaColaborador2, "Auxiliar Veterinário"); colaboradorService2.Criar(colaborador2); Console.WriteLine("Colaborador 2 pessoa fisica Criada!"); //Depedencia tipo Scoped IColaboradorValidation colaboradorValidation3 = new ColaboradorValidation(); IColaboradorService colaboradorService3 = new ColaboradorService(colaboradorRepository, colaboradorValidation3, pessoaRepository); var pessoaFisicaColaborador3 = new PessoaFisica("Colaboradorzinho 3", "688.404.530-24", "99999999", DateTime.Now, "*****@*****.**", "99 9999-9999", "99 99999-9999", "Teste de sistema", "teste", 0, "teste", "teste", "teste", "teste", "SC", pais); var colaborador3 = new Colaborador(pessoaFisicaColaborador3, "Gerente"); colaboradorService3.Criar(colaborador3); Console.WriteLine("Colaborador 3 pessoa fisica Criada!"); try { //Depedencia tipo Scoped IColaboradorValidation colaboradorValidationErro = new ColaboradorValidation(); IColaboradorService colaboradorServiceErro = new ColaboradorService(colaboradorRepository, colaboradorValidationErro, pessoaRepository); var pessoaFisicaColaboradorErro = new PessoaFisica("Colaboradorzinho ERRO 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "999.999.999-99", "", DateTime.Now, "", "", "", "", "", 0, "", "teste", "teste", "teste", "SC", pais); var colaboradorErro = new Colaborador(pessoaFisicaColaboradorErro, ""); colaboradorServiceErro.Criar(colaboradorErro); } catch (Exception e) { var listaDeErro = e.Message.Split('~'); Console.WriteLine(" "); Console.WriteLine("Erros ao criar colaborador com erros de validações"); foreach (var erro in listaDeErro) { Console.WriteLine(erro); } Console.WriteLine(" "); } Console.WriteLine("======================"); Console.WriteLine("Colaboradores cadastrados: "); //Depedencia tipo Scoped IColaboradorValidation colaboradorValidation4 = new ColaboradorValidation(); IColaboradorService colaboradorService4 = new ColaboradorService(colaboradorRepository, colaboradorValidation4, pessoaRepository); foreach (var colaboradorConsultado in colaboradorService4.ConsultarTodos()) { Console.WriteLine("Codigo: " + colaboradorConsultado.Codigo); Console.WriteLine("Cargo: " + colaboradorConsultado.Cargo); Console.WriteLine("Data Admissão: " + colaboradorConsultado.DataAdmissao); Console.WriteLine("PF Nome: " + colaboradorConsultado.PessoaFisica.Nome); Console.WriteLine("PF CPF: " + colaboradorConsultado.PessoaFisica.Cpf); Console.WriteLine("PF RG: " + colaboradorConsultado.PessoaFisica.Rg); Console.WriteLine("PF Data Nasc.: " + colaboradorConsultado.PessoaFisica.DataNascimento); Console.WriteLine("P Codigo: " + colaboradorConsultado.PessoaFisica.Codigo); Console.WriteLine("P Email: " + colaboradorConsultado.PessoaFisica.Email); Console.WriteLine("P Telefone: " + colaboradorConsultado.PessoaFisica.Telefone); Console.WriteLine("P Celular: " + colaboradorConsultado.PessoaFisica.Celular); Console.WriteLine("P Observação: " + colaboradorConsultado.PessoaFisica.Observacao); Console.WriteLine("P Data Cad.: " + colaboradorConsultado.PessoaFisica.DataCadastro); Console.WriteLine("P Logradouro: " + colaboradorConsultado.PessoaFisica.Logradouro); Console.WriteLine("P Numero: " + colaboradorConsultado.PessoaFisica.Numero); Console.WriteLine("P Bairro: " + colaboradorConsultado.PessoaFisica.Bairro); Console.WriteLine("P Complemento: " + colaboradorConsultado.PessoaFisica.Complemento); Console.WriteLine("P Cep: " + colaboradorConsultado.PessoaFisica.Cep); Console.WriteLine("P Cidade: " + colaboradorConsultado.PessoaFisica.Cidade); Console.WriteLine("P UF: " + colaboradorConsultado.PessoaFisica.UnidadeFederativa); Console.WriteLine("Pais Codigo: " + colaboradorConsultado.PessoaFisica.Pais.Codigo); Console.WriteLine("Pais Nome: " + colaboradorConsultado.PessoaFisica.Pais.Nome); Console.WriteLine("Pais Idioma: " + colaboradorConsultado.PessoaFisica.Pais.Idioma); Console.WriteLine("-----------------------"); } Console.WriteLine("========================================================================="); Console.WriteLine("========================================================================="); Console.WriteLine("Criação do CLIENTE pelo operador do sistema, para simples teste... "); //Depedencia tipo Scoped IClienteValidation clienteValidation1 = new ClienteValidation(); IClienteService clienteService1 = new ClienteService(clienteRepository, clienteValidation1, pessoaRepository); var pessoaFisicaCliente = new PessoaFisica("fulaninho", "688.404.530-24", "99999999", DateTime.Now, "*****@*****.**", "99 9999-9999", "99 99999-9999", "Teste de sistema", "teste", 0, "teste", "teste", "teste", "teste", "SC", pais); var clientePessoaFisica = new Cliente(pessoaFisicaCliente); clienteService1.Criar(clientePessoaFisica); Console.WriteLine("Cliente pessoa fisica Criada!"); //Depedencia tipo Scoped IClienteValidation clienteValidation2 = new ClienteValidation(); IClienteService clienteService2 = new ClienteService(clienteRepository, clienteValidation2, pessoaRepository); var pessoaJuridica1 = new PessoaJuridica("Empresinha", "Empresinha Teste", "56.310.237/0001-23", "614.912.493.506", "123.123.123", "Fulaninho", "*****@*****.**", "99 9999-9999", "99 99999-9999", "Teste de sistema", "teste", 0, "teste", "teste", "teste", "teste", "SC", pais); var clientePessoaJuridica = new Cliente(pessoaJuridica1); clienteService2.Criar(clientePessoaJuridica); Console.WriteLine("Cliente 2 pessoa juridica Criada!"); Console.WriteLine("======================"); Console.WriteLine("Clientes cadastrados: "); //Depedencia tipo Scoped IClienteValidation clienteValidation3 = new ClienteValidation(); IClienteService clienteService3 = new ClienteService(clienteRepository, clienteValidation3, pessoaRepository); foreach (var clienteConsultado in clienteService3.ConsultarTodos()) { if (clienteConsultado.Pessoa.GetType() == typeof(PessoaFisica)) { var pessoaFisica = (PessoaFisica)clienteConsultado.Pessoa; Console.WriteLine("Codigo: " + clienteConsultado.Codigo); Console.WriteLine("PF Nome: " + pessoaFisica.Nome); Console.WriteLine("PF CPF: " + pessoaFisica.Cpf); Console.WriteLine("PF RG: " + pessoaFisica.Rg); Console.WriteLine("PF Data Nasc.: " + pessoaFisica.DataNascimento); Console.WriteLine("P Codigo: " + pessoaFisica.Codigo); Console.WriteLine("P Email: " + pessoaFisica.Email); Console.WriteLine("P Telefone: " + pessoaFisica.Telefone); Console.WriteLine("P Celular: " + pessoaFisica.Celular); Console.WriteLine("P Observação: " + pessoaFisica.Observacao); Console.WriteLine("P Data Cad.: " + pessoaFisica.DataCadastro); Console.WriteLine("P Logradouro: " + pessoaFisica.Logradouro); Console.WriteLine("P Numero: " + pessoaFisica.Numero); Console.WriteLine("P Bairro: " + pessoaFisica.Bairro); Console.WriteLine("P Complemento: " + pessoaFisica.Complemento); Console.WriteLine("P Cep: " + pessoaFisica.Cep); Console.WriteLine("P Cidade: " + pessoaFisica.Cidade); Console.WriteLine("P UF: " + pessoaFisica.UnidadeFederativa); Console.WriteLine("Pais Codigo: " + pessoaFisica.Pais.Codigo); Console.WriteLine("Pais Nome: " + pessoaFisica.Pais.Nome); Console.WriteLine("Pais Idioma: " + pessoaFisica.Pais.Idioma); } if (clienteConsultado.Pessoa.GetType() == typeof(PessoaJuridica)) { var pessoaJuridica = (PessoaJuridica)clienteConsultado.Pessoa; Console.WriteLine("Codigo: " + clienteConsultado.Codigo); Console.WriteLine("PJ Razão Soci.:" + pessoaJuridica.RazaoSocial); Console.WriteLine("PJ Nome Fant.: " + pessoaJuridica.NomeFantasia); Console.WriteLine("PJ CNPJ: " + pessoaJuridica.Cnpj); Console.WriteLine("PJ IE: " + pessoaJuridica.InscricaoEstadual); Console.WriteLine("PJ IM: " + pessoaJuridica.InscricaoMunicipal); Console.WriteLine("PJ Resp: " + pessoaJuridica.Responsavel); Console.WriteLine("P Codigo: " + pessoaJuridica.Codigo); Console.WriteLine("P Email: " + pessoaJuridica.Email); Console.WriteLine("P Telefone: " + pessoaJuridica.Telefone); Console.WriteLine("P Celular: " + pessoaJuridica.Celular); Console.WriteLine("P Observação: " + pessoaJuridica.Observacao); Console.WriteLine("P Data Cad.: " + pessoaJuridica.DataCadastro); Console.WriteLine("P Logradouro: " + pessoaJuridica.Logradouro); Console.WriteLine("P Numero: " + pessoaJuridica.Numero); Console.WriteLine("P Bairro: " + pessoaJuridica.Bairro); Console.WriteLine("P Complemento: " + pessoaJuridica.Complemento); Console.WriteLine("P Cep: " + pessoaJuridica.Cep); Console.WriteLine("P Cidade: " + pessoaJuridica.Cidade); Console.WriteLine("P UF: " + pessoaJuridica.UnidadeFederativa); Console.WriteLine("Pais Codigo: " + pessoaJuridica.Pais.Codigo); Console.WriteLine("Pais Nome: " + pessoaJuridica.Pais.Nome); Console.WriteLine("Pais Idioma: " + pessoaJuridica.Pais.Idioma); } Console.WriteLine("-----------------------"); } Console.WriteLine("========================================================================="); Console.WriteLine("========================================================================="); Console.WriteLine("Criação do PET pelo operador do sistema, para simples teste... "); //Depedencia tipo Scoped IPetValidation petValidation1 = new PetValidation(); IPetService petService1 = new PetService(petRepository, petValidation1); var petPessoaFisica = new Pet("Fufuzinho", "Cachorro", DateTime.Now, "PET TESTE 1", clientePessoaFisica); petService1.Criar(petPessoaFisica); //Depedencia tipo Scoped IPetValidation petValidation2 = new PetValidation(); IPetService petService2 = new PetService(petRepository, petValidation2); var petPessoaJuridica1 = new Pet("Zizizinho", "Gato", DateTime.Now, "PET TESTE 2", clientePessoaJuridica); petService2.Criar(petPessoaJuridica1); //Depedencia tipo Scoped IPetValidation petValidation3 = new PetValidation(); IPetService petService3 = new PetService(petRepository, petValidation3); var petPessoaJuridica2 = new Pet("Nanazinho", "Passaro", DateTime.Now, "PET TESTE 3", clientePessoaJuridica); petService3.Criar(petPessoaJuridica2); Console.WriteLine("Pets cadastrados: "); IPetValidation petValidation4 = new PetValidation(); IPetService petService4 = new PetService(petRepository, petValidation4); foreach (var petConsultado in petService4.ConsultarTodos()) { Console.WriteLine("Codigo: " + petConsultado.Codigo); Console.WriteLine("Nome: " + petConsultado.Nome); Console.WriteLine("Bio: " + petConsultado.Bio); Console.WriteLine("Data Nasc.: " + petConsultado.DataNascimento); Console.WriteLine("Observação: " + petConsultado.Observacao); Console.WriteLine("Data Cadastro: " + petConsultado.DataCadastro); Console.WriteLine("Cli. Dono COD.:" + petConsultado.ClienteDono.Codigo); Console.WriteLine("-----------------------"); } Console.WriteLine("========================================================================="); Console.WriteLine("========================================================================="); Console.WriteLine("Criação do SERVIÇOS pelo operador do sistema, para simples teste... "); //Depedencia tipo Scoped IServicoValidation servicoValidation1 = new ServicoValidation(); IServicoService servicoService1 = new ServicoService(servicoRepository, servicoValidation1); var servico1 = new Servico(clientePessoaFisica, petPessoaFisica, colaborador1, "Vacinação"); servicoService1.Criar(servico1); //Depedencia tipo Scoped IServicoValidation servicoValidation2 = new ServicoValidation(); IServicoService servicoService2 = new ServicoService(servicoRepository, servicoValidation2); var servico2 = new Servico(clientePessoaJuridica, petPessoaJuridica1, colaborador2, "Banho"); servicoService2.Criar(servico2); //Depedencia tipo Scoped IServicoValidation servicoValidation3 = new ServicoValidation(); IServicoService servicoService3 = new ServicoService(servicoRepository, servicoValidation3); var servico3 = new Servico(clientePessoaJuridica, petPessoaJuridica2, colaborador1, "Enfaixar"); servicoService3.Criar(servico3); Console.WriteLine("Serviços cadastrados: "); //Depedencia tipo Scoped IServicoValidation servicoValidation4 = new ServicoValidation(); IServicoService servicoService4 = new ServicoService(servicoRepository, servicoValidation4); foreach (var servicoConsultado in servicoService4.ConsultarTodos()) { Console.WriteLine("Serv. Codigo: " + servicoConsultado.Codigo); Console.WriteLine("Serv. Tipo: " + servicoConsultado.Tipo); Console.WriteLine("Serv. Status: " + servicoConsultado.Status); Console.WriteLine("Serv. DataIni: " + servicoConsultado.DataInicio); Console.WriteLine("Serv. DataFim: " + servicoConsultado.DataFim); Console.WriteLine("Cliente Codigo:" + servicoConsultado.Cliente.Codigo); Console.WriteLine("Pet Codigo: " + servicoConsultado.Pet.Codigo); Console.WriteLine("Colab. Codigo: " + servicoConsultado.ColaboradorResponsavel.Codigo); Console.WriteLine("Colab. Que Aprovou: " + servicoConsultado.GerenteQueAprovouServico?.Codigo); Console.WriteLine("-----------------------"); } Console.WriteLine(" "); Console.WriteLine(" "); Console.WriteLine(" "); servico1.IniciarServico(); servicoService4.EditarIniciarServico(servico1); Console.WriteLine("Serviço 1:"); var servicoConsultado1 = servicoService4.ConsultarPorCodigo(servico1.Codigo); Console.WriteLine("Serv. Codigo: " + servicoConsultado1.Codigo); Console.WriteLine("Serv. Tipo: " + servicoConsultado1.Tipo); Console.WriteLine("Serv. Status: " + servicoConsultado1.Status); Console.WriteLine("Serv. DataIni: " + servicoConsultado1.DataInicio); Console.WriteLine("Serv. DataFim: " + servicoConsultado1.DataFim); Console.WriteLine("Cliente Codigo:" + servicoConsultado1.Cliente.Codigo); Console.WriteLine("Pet Codigo: " + servicoConsultado1.Pet.Codigo); Console.WriteLine("Colab. Codigo: " + servicoConsultado1.ColaboradorResponsavel.Codigo); Console.WriteLine("Colab. Que Aprovou: " + servicoConsultado1.GerenteQueAprovouServico?.Codigo); Console.WriteLine("-----------------------"); Console.WriteLine(" "); Console.WriteLine(" "); Console.WriteLine(" "); servico2.IniciarServico(); servicoService4.EditarIniciarServico(servico2); Console.WriteLine("Serviço 2:"); var servicoConsultado2 = servicoService4.ConsultarPorCodigo(servico2.Codigo); Console.WriteLine("Serv. Codigo: " + servicoConsultado2.Codigo); Console.WriteLine("Serv. Tipo: " + servicoConsultado2.Tipo); Console.WriteLine("Serv. Status: " + servicoConsultado2.Status); Console.WriteLine("Serv. DataIni: " + servicoConsultado2.DataInicio); Console.WriteLine("Serv. DataFim: " + servicoConsultado2.DataFim); Console.WriteLine("Cliente Codigo:" + servicoConsultado2.Cliente.Codigo); Console.WriteLine("Pet Codigo: " + servicoConsultado2.Pet.Codigo); Console.WriteLine("Colab. Codigo: " + servicoConsultado2.ColaboradorResponsavel.Codigo); Console.WriteLine("Colab. Que Aprovou: " + servicoConsultado2.GerenteQueAprovouServico?.Codigo); Console.WriteLine("-----------------------"); Console.WriteLine(" "); Console.WriteLine(" "); Console.WriteLine(" "); servico1.FinalizarServico(colaborador3); servicoService4.EditarIniciarServico(servico1); Console.WriteLine("Serviço 1:"); servicoConsultado1 = servicoService4.ConsultarPorCodigo(servico1.Codigo); Console.WriteLine("Serv. Codigo: " + servicoConsultado1.Codigo); Console.WriteLine("Serv. Tipo: " + servicoConsultado1.Tipo); Console.WriteLine("Serv. Status: " + servicoConsultado1.Status); Console.WriteLine("Serv. DataIni: " + servicoConsultado1.DataInicio); Console.WriteLine("Serv. DataFim: " + servicoConsultado1.DataFim); Console.WriteLine("Cliente Codigo:" + servicoConsultado1.Cliente.Codigo); Console.WriteLine("Pet Codigo: " + servicoConsultado1.Pet.Codigo); Console.WriteLine("Colab. Codigo: " + servicoConsultado1.ColaboradorResponsavel.Codigo); Console.WriteLine("Colab. Que Aprovou: " + servicoConsultado1.GerenteQueAprovouServico?.Codigo); Console.WriteLine("-----------------------"); Console.WriteLine(" "); Console.WriteLine(" "); Console.WriteLine(" "); servicoService4.Deletar(servico1); Console.WriteLine("Serviço 1 deletado"); Console.WriteLine(" "); Console.WriteLine(" "); Console.WriteLine(" "); Console.WriteLine("Serviços que ainda estão ativos: "); foreach (var servicoConsultado in servicoService4.ConsultarTodos()) { Console.WriteLine("Serv. Codigo: " + servicoConsultado.Codigo); Console.WriteLine("Serv. Tipo: " + servicoConsultado.Tipo); Console.WriteLine("Serv. Status: " + servicoConsultado.Status); Console.WriteLine("Serv. DataIni: " + servicoConsultado.DataInicio); Console.WriteLine("Serv. DataFim: " + servicoConsultado.DataFim); Console.WriteLine("Cliente Codigo:" + servicoConsultado.Cliente.Codigo); Console.WriteLine("Pet Codigo: " + servicoConsultado.Pet.Codigo); Console.WriteLine("Colab. Codigo: " + servicoConsultado.ColaboradorResponsavel.Codigo); Console.WriteLine("Colab. Que Aprovou: " + servicoConsultado.GerenteQueAprovouServico?.Codigo); Console.WriteLine("-----------------------"); } Console.WriteLine("========================================================================="); Console.ReadLine(); }