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 <IActionResult> Get(int id) { try { var funcionario = await _funcionarioRepositorio.ObterPorIdAsync(id); return(Ok(FuncionarioDto.ConvertEntityToDto(funcionario))); } catch (Exception) { return(StatusCode(StatusCodes.Status500InternalServerError, "Problema ao recuperar o funcionário informado")); } }
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); }
public async Task ValidarAsync(int funcionarioId) { var funcionario = await _funcionarioRepositorio.ObterPorIdAsync(funcionarioId); if (funcionario == null) { await NotificacaoDeDominio.HandleNotificacaoDeServicoAsync(FuncionarioResources.FuncionarioNaoExiste); } }
public async Task <IActionResult> Get(int id) { var funcionario = await _funcionarioRepositorio.ObterPorIdAsync(id); if (funcionario == null) { return(Ok()); } return(Ok(funcionario.MapTo <FuncionarioDto>())); }
public async Task ExcluirAsync(int funcionarioId) { await _validadorDeExclusaoDeFuncionario.ValidarAsync(funcionarioId); if (NotificacaoDeDominio.HasNotifications) { return; } var funcionario = await _funcionarioRepositorio.ObterPorIdAsync(funcionarioId); _funcionarioRepositorio.Remover(funcionario); }
public async Task Excluir(int id) { var funcionario = await _funcionarioRepositorio.ObterPorIdAsync(id); if (await VerificarFuncionarioInvalido(funcionario)) { return; } if (!NotificacaoDeDominio.HasNotifications()) { _funcionarioRepositorio.Remover(funcionario); } }
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 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); }