Beispiel #1
0
        public async Task <IActionResult> Get(int id)
        {
            try
            {
                var cargo = await _cargoRepositorio.ObterPorIdAsync(id);

                return(Ok(CargoDto.ConvertEntityToDto(cargo)));
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, "Problema ao recuperar o cargo informado"));
            }
        }
Beispiel #2
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);
                }
            }
        }
Beispiel #3
0
        private async Task ValidarCargoNaoCadastrado(int cargoId)
        {
            var cargo = await _cargoRepositorio.ObterPorIdAsync(cargoId);

            if (cargo == null)
            {
                await NotificarValidacaoDeServico(string.Format(CommonResources.MsgDominioNaoCadastradoNoMasculino, CommonResources.CargoDominio));
            }
        }
        public async Task <IActionResult> Get(int id)
        {
            var cargo = await _cargoRepositorio.ObterPorIdAsync(id);

            if (cargo == null)
            {
                return(Ok());
            }

            return(Ok(cargo.MapTo <CargoDto>()));
        }
Beispiel #5
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);
        }
        public async Task ExcluirAsync(int cargoId)
        {
            await _validadorDeExclusaoDeCargo.ValidarAsync(cargoId);

            if (NotificacaoDeDominio.HasNotifications)
            {
                return;
            }

            var cargo = await _cargoRepositorio.ObterPorIdAsync(cargoId);

            _cargoRepositorio.Remover(cargo);
        }
        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);
            }
        }
Beispiel #8
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);
            }
        }
        public async Task Vincular(CargoDoFuncionarioDto cargoDoFuncionarioDto)
        {
            var funcionario = await _funcionarioRepositorio.ObterPorIdAsync(cargoDoFuncionarioDto.FuncionarioId);

            var cargo = await _cargoRepositorio.ObterPorIdAsync(cargoDoFuncionarioDto.CargoId);

            var cargoDoFuncionario = new CargoDoFuncionario(funcionario, cargo, cargoDoFuncionarioDto.DataDeVinculo);

            if (!cargoDoFuncionario.Validar())
            {
                await NotificarValidacoesDeDominioAsync(cargoDoFuncionario.ValidationResult);

                return;
            }

            await _funcionarioRepositorio.AdicionarCargoParaFuncionarioAsync(cargoDoFuncionario);
        }