Ejemplo n.º 1
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()));
        }