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)); }
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)); }
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())); }