예제 #1
0
        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();
        }