Пример #1
0
        public async Task Armazenar(CargoDto dto)
        {
            await ValidarCargoComMesmaDescricao(dto);

            if (!NotificacaoDeDominio.HasNotifications())
            {
                var cargo = new Cargo(dto.Descricao);

                if (dto.Id > 0)
                {
                    cargo = await _cargoRepositorio.ObterPorIdAsync(dto.Id);

                    cargo.AlterarDescricao(dto.Descricao);
                }

                if (cargo.Validar() && cargo.Id == 0)
                {
                    await _cargoRepositorio.AdicionarAsync(cargo);
                }
                else
                {
                    await NotificarValidacoesDeDominio(cargo.ValidationResult);
                }
            }
        }
Пример #2
0
        public async Task Armazenar(FuncionarioDto dto)
        {
            await ValidarFuncionarioComMesmoNome(dto);

            if (!NotificacaoDeDominio.HasNotifications())
            {
                var funcionario = new Funcionario(dto.Nome, dto.Cpf);
                if (dto.Id > 0)
                {
                    funcionario = await _funcionarioRepositorio.ObterPorIdAsync(dto.Id);

                    funcionario.AlterarNome(dto.Nome);
                    funcionario.AlterarCpf(dto.Cpf);
                }

                funcionario.AlterarDataContratacao(dto.DataContratacao);

                if (funcionario.Validar() && funcionario.Id == 0)
                {
                    await _funcionarioRepositorio.AdicionarAsync(funcionario);
                }
                else
                {
                    await NotificarValidacoesDeDominio(funcionario.ValidationResult);
                }
            }
        }
        public async Task Vincular(int funcionarioId, int empresaId)
        {
            var funcionario = await _funcionarioRepositorio.ObterPorIdAsync(funcionarioId);

            if (funcionario == null)
            {
                await NotificacaoDeDominio.HandleNotificacaoDeServicoAsync(FuncionarioResources.FuncionarioNaoExiste);

                return;
            }

            if (!funcionario.ValidarOVinculoComEmpresa())
            {
                await NotificarValidacoesDeDominioAsync(funcionario.ValidationResult);

                return;
            }

            var empresa = await _empresaRepositorio.ObterPorIdAsync(empresaId);

            if (empresa == null)
            {
                await NotificacaoDeDominio.HandleNotificacaoDeServicoAsync(EmpresaResources.EmpresaNaoExiste);

                return;
            }

            funcionario.VincularComEmpresa(empresa);
        }
Пример #4
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);
                }
            }
        }
Пример #5
0
        public async Task ValidarAsync(int funcionarioId)
        {
            var funcionario = await _funcionarioRepositorio.ObterPorIdAsync(funcionarioId);

            if (funcionario == null)
            {
                await NotificacaoDeDominio.HandleNotificacaoDeServicoAsync(FuncionarioResources.FuncionarioNaoExiste);
            }
        }
Пример #6
0
        public async Task AdicionarEmpresa(int funcionarioId, int empresaId)
        {
            var funcionario = await _funcionarioRepositorio.ObterPorIdAsync(funcionarioId);

            await ValidarFuncionarioNaoCadastrado(funcionario);
            await ValidarEmpresaNaoCadastrada(empresaId);

            if (!NotificacaoDeDominio.HasNotifications())
            {
                funcionario.AlterarEmpresa(empresaId);
            }
        }
Пример #7
0
        public async Task <Cargo> EditarAsync(CargoDto cargoDto)
        {
            var cargo = await _cargoRepositorio.ObterPorIdAsync(cargoDto.Id);

            if (cargo == null)
            {
                await NotificacaoDeDominio.HandleNotificacaoDeDominioAsync(CargoResources.CargoNaoExiste);
            }

            cargo?.AlterarDescricao(cargoDto.Descricao);

            return(cargo);
        }
Пример #8
0
        public async Task <bool> ValidarAsync(string cpf, int?id = null)
        {
            var funcionario = await _funcionarioRepositorio.ObterPorCpfAsync(cpf);

            if (funcionario != null && funcionario.Id != id)
            {
                await NotificacaoDeDominio.HandleNotificacaoDeServicoAsync(
                    Resource.FormatarResourceToLowerValor2(
                        Resource.MensagemJaExisteCadastradoMasculino,
                        FuncionarioResources.Funcionario, FuncionarioResources.Cpf));
            }

            return(!NotificacaoDeDominio.HasNotifications);
        }
Пример #9
0
        public async Task Excluir(int id)
        {
            var funcionario = await _funcionarioRepositorio.ObterPorIdAsync(id);

            if (await VerificarFuncionarioInvalido(funcionario))
            {
                return;
            }

            if (!NotificacaoDeDominio.HasNotifications())
            {
                _funcionarioRepositorio.Remover(funcionario);
            }
        }
Пример #10
0
        public async Task <Empresa> EditarAsync(EmpresaDto empresaDto)
        {
            var empresa = await _empresaRepositorio.ObterPorIdAsync(empresaDto.Id);

            if (empresa == null)
            {
                await NotificacaoDeDominio.HandleNotificacaoDeDominioAsync(EmpresaResources.EmpresaNaoExiste);
            }

            empresa?.AlterarNome(empresaDto.Nome);
            empresa?.AlterarCnpj(empresaDto.Cnpj);
            empresa?.AlterarDataDeFundacao(empresaDto.DataDeFundacao);

            return(empresa);
        }
        public async Task <bool> ValidarAsync(string cnpj, int idDaEntidadeAtual)
        {
            var empresa = await _empresaRepositorio.ObterPorCnpjAsync(cnpj);

            if (empresa != null && empresa.Id != idDaEntidadeAtual)
            {
                await NotificacaoDeDominio.HandleNotificacaoDeServicoAsync(
                    Resource.FormatarResourceToLowerValor2(
                        Resource.MensagemJaExisteCadastradoFeminino,
                        EmpresaResources.Empresa, EmpresaResources.Cnpj)
                    );
            }

            return(!NotificacaoDeDominio.HasNotifications);
        }
        public async Task <Funcionario> EditarAsync(FuncionarioDto funcionarioDto)
        {
            var funcionario = await _funcionarioRepositorio.ObterPorIdAsync(funcionarioDto.Id);

            if (funcionario == null)
            {
                await NotificacaoDeDominio.HandleNotificacaoDeServicoAsync(FuncionarioResources.FuncionarioNaoExiste);
            }

            funcionario?.AlterarNome(funcionarioDto.Nome);
            funcionario?.AlterarCpf(funcionarioDto.Cpf);
            funcionario?.AlterarDataDeContratacao(funcionarioDto.DataDeContratacao);

            return(funcionario);
        }
        public async Task ValidarAsync(int cargoId)
        {
            var cargo = await _cargoRepositorio.ObterPorIdAsync(cargoId);

            if (cargo == null)
            {
                await NotificacaoDeDominio.HandleNotificacaoDeServicoAsync(CargoResources.CargoNaoExiste);

                return;
            }

            if (cargo.ListaDeFuncionarios.Any())
            {
                await NotificacaoDeDominio.HandleNotificacaoDeServicoAsync(CargoResources.ExisteFuncionarioVinculadoNoCargo);
            }
        }
Пример #14
0
        public async Task Excluir(int id)
        {
            var cargo = await _cargoRepositorio.ObterPorIdAsync(id);

            if (await VerificarCargoInvalido(cargo))
            {
                return;
            }

            await VerificarCargoAtribuidoFuncionario(cargo);

            if (!NotificacaoDeDominio.HasNotifications())
            {
                _cargoRepositorio.Remover(cargo);
            }
        }
Пример #15
0
        public async Task Excluir(int id)
        {
            var empresa = await _empresaRepositorio.ObterPorIdAsync(id);

            if (await VerificarEmpresaInvalida(empresa))
            {
                return;
            }

            await VerificarEmpresaAtribuidoFuncionario(empresa);

            if (!NotificacaoDeDominio.HasNotifications())
            {
                _empresaRepositorio.Remover(empresa);
            }
        }
        public async Task ValidarAsync(int empresaId)
        {
            var empresa = await _empresaRepositorio.ObterPorIdAsync(empresaId);

            if (empresa == null)
            {
                await NotificacaoDeDominio.HandleNotificacaoDeServicoAsync(EmpresaResources.EmpresaNaoExiste);

                return;
            }

            if (empresa.ListaDeFuncionarios.Any())
            {
                await NotificacaoDeDominio.HandleNotificacaoDeServicoAsync(EmpresaResources.ExisteFuncionarioVinculadoNaEmpresa);
            }
        }