示例#1
0
        public async Task ArmazenarAsync(EmpresaDto empresaDto)
        {
            empresaDto = empresaDto ?? new EmpresaDto();

            var empresa = empresaDto.Id > 0 ?
                          await _editarUmaEmpresaRepositorio.EditarAsync(empresaDto) :
                          CriarUmaNovaEmpresa(empresaDto);

            if (NotificacaoDeDominio.HasNotifications)
            {
                return;
            }

            if (!empresa.Validar())
            {
                await NotificarValidacoesDeDominioAsync(empresa.ValidationResult);
            }

            await _validadorCnpjDaEmpresaJaExistente.ValidarAsync(empresa.Cnpj, empresa.Id);

            if (!NotificacaoDeDominio.HasNotifications && empresa.Id == 0)
            {
                await _empresaRepositorio.AdicionarAsync(empresa);
            }
        }
示例#2
0
        public async Task Armazenar(EmpresaDto dto)
        {
            await ValidarEmpresaComMesmoNome(dto);

            var empresa = new Empresa(dto.Nome, dto.Cnpj);

            if (!NotificacaoDeDominio.HasNotifications())
            {
                if (dto.Id > 0)
                {
                    empresa = await _empresaRepositorio.ObterPorIdAsync(dto.Id);

                    empresa.AlterarNome(dto.Nome);
                    empresa.AlterarCnpj(dto.Cnpj);
                }

                empresa.AlterarDataFundacao(dto.DataFundacao);

                if (!empresa.Validar())
                {
                    await NotificarValidacoesDeDominio(empresa.ValidationResult);
                }

                if (empresa.Id == 0)
                {
                    await _empresaRepositorio.AdicionarAsync(empresa);
                }
            }
        }