public VinculadorDeFuncionarioNoCargoTestes() { _onboardingSIGDB1faker = OnboardingSIGDB1FakerBuilder.Novo().Build(); _funcionarioId = _onboardingSIGDB1faker.Id(); _cargoId = _onboardingSIGDB1faker.Id(); _onboardingSIGDB1faker = OnboardingSIGDB1FakerBuilder.Novo().Build(); _cargoDoFuncionarioDto = new CargoDoFuncionarioDto() { FuncionarioId = _funcionarioId, CargoId = _cargoId, DataDeVinculo = _onboardingSIGDB1faker.QualquerDataDoUltimoAno() }; var empresa = EmpresaBuilder.Novo().ComId(_onboardingSIGDB1faker.Id()).Build(); _funcionario = FuncionarioBuilder.Novo().ComId(_funcionarioId).ComEmpresa(empresa).Build(); _cargo = CargoBuilder.Novo().ComId(_cargoId).Build(); _notificacaoDeDominioMock = new Mock <IDomainNotificationHandler>(); _funcionarioRepositorioMock = new Mock <IFuncionarioRepositorio>(); _cargoRepositorioMock = new Mock <ICargoRepositorio>(); _vinculadorDeFuncionarioNoCargo = new VinculadorDeFuncionarioNoCargo( _notificacaoDeDominioMock.Object, _funcionarioRepositorioMock.Object, _cargoRepositorioMock.Object ); }
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); }
public async Task <IActionResult> Put(CargoDoFuncionarioDto cargoDoFuncionarioDto) { await _vinculadorDeFuncionarioNoCargo.Vincular(cargoDoFuncionarioDto); return(Ok()); }