Ejemplo n.º 1
0
        public async Task Execute(ListarEmpresaInput input)
        {
            var empresas = await _empresaRepositorio.ObterEmpresas();

            var empresasOutput = new List <Empresa>();

            foreach (var emp in empresas)
            {
                empresasOutput.Add(new Empresa(emp.Id, emp.NomeFantasia));
            }

            _presenter.AddResult(new ListarEmpresaOutput(empresasOutput));
        }
Ejemplo n.º 2
0
        public async Task Execute(CadastrarFornecedorInput input)
        {
            Pessoa pessoa;

            if (input.PessoaJuridica)
            {
                var pessoaJuridica = _fornecedorFactory.NovaPessoaJuridica(input.Nome, input.CpfCnpj, input.Telefones);

                if (await _fornecedorRepositorio.PessoaJuridicaCadastrada(pessoaJuridica.CNPJ))
                {
                    _outputPort.AddNotification($"CNPJ {pessoaJuridica.CNPJ} já cadastrado");
                    return;
                }

                pessoa = pessoaJuridica;
            }
            else
            {
                var pessoaFisica = _fornecedorFactory.NovaPessoaFisica(input.Nome, input.RG, input.DataNascimento, input.CpfCnpj, input.Telefones);

                if (await _fornecedorRepositorio.PessoaFisicaCadastrada(pessoaFisica.CPF))
                {
                    _outputPort.AddNotification($"CPF {pessoaFisica.CPF} já cadastrado");
                    return;
                }

                pessoa = pessoaFisica;
            }

            var empresa = await _empresaRepositorio.ObterEmpresa(input.EmpresaId);

            if (empresa == null)
            {
                _outputPort.AddNotification("Empresa não encontrada");
                return;
            }

            var fornecedor = _fornecedorFactory.NovoFornecedor(empresa, pessoa);

            _outputPort.AddNotifications(fornecedor.Notificacoes);

            if (_outputPort.Valid)
            {
                await _fornecedorRepositorio.Salvar(fornecedor);

                await _unitOfWork.Commit();

                var result = new CadastrarFornecedorOutput(fornecedor.Id, pessoa.Nome, pessoa.ObterNumeroCpfCnpj(), pessoa.DataCadastro);
                _outputPort.AddResult(result);
            }
        }
        public async Task Execute(ListarFornecedoresInput input)
        {
            var fornecedores = await _fornecedorRepositorio.ObterFornecedores(input.Nome, input.CpfCnpj, input.DataCadastro);

            var fornecedorOutput = new List <Fornecedor>();

            foreach (var forn in fornecedores)
            {
                fornecedorOutput.Add(new Fornecedor(forn.Id,
                                                    forn.Pessoa.Nome,
                                                    forn.Pessoa.ObterNumeroCpfCnpj(),
                                                    forn.Pessoa.PessoaTipo == PessoaTipo.PessoaJuridica,
                                                    forn?.Pessoa?.Telefones.Select(x => x.Numero)));
            }

            _outputPort.AddResult(new ListarFornecedoresOutput(fornecedorOutput));
        }
Ejemplo n.º 4
0
        public async Task Execute(CadastrarEmpresaInput input)
        {
            var empresa = _empresaFactory.NovaEmpresa(input.UF, input.NomeFantasia, input.CNPJ);

            if (empresa.Invalido)
            {
                _outputPort.AddNotifications(empresa.Notificacoes);
                return;
            }

            if (await _empresaRepositorio.EmpresaJaCadastrada(empresa.CNPJ))
            {
                _outputPort.AddNotification("CNPJ já cadastrado");
                return;
            }

            await _empresaRepositorio.Save(empresa).ConfigureAwait(false);

            await _unitOfWork.Commit();

            _outputPort.AddResult(new CadastrarEmpresaOutput(empresa.Id, empresa.UF, empresa.NomeFantasia, empresa.CNPJ.ToString()));
        }