public async Task <bool> Handle(RegistrarOcorrenciaDeFeriasCommand request, CancellationToken cancellationToken) { if (!request.IsValid()) { NotifyValidationErrors(request); return(false); } var colaborador = await _colaboradorRepository.BusqueColaborador(request.IdColaborador); var contrato = colaborador.Contratos.FirstOrDefault(x => x.Id == request.IdContrato); if (contrato == null) { contrato = await _colaboradorRepository.ObtenhaContrato(request.IdContrato); } var ocorrenciaDeFerias = new OcorrenciaDeFerias(contrato, request.DataDeInicio, request.DiasDeFerias, request.DiasDeAbono); await _ocorrenciaDeDeriasRepository.RegistrarOcorrenciaDeFeriasCommand(ocorrenciaDeFerias); if (Commit()) { await Bus.RaiseEvent(AgendamentoDeFeriasQueryEvent.Crie(colaborador, request.IdContrato, ocorrenciaDeFerias)); return(true); } return(false); }
public async Task Registro_de_ferias_sem_saldo_de_ferias() { // Arrange var context = InMemoryDBContext.Crie(); var contratoDAO = FabricGenericDAO <IContratoDao> .Crie(context); var contrato = new Contrato( new Colaborador(Guid.NewGuid(), NomePessoa.Crie("Codeizi", "Treinamento"), DateTime.Now.AddYears(-34)), DateTime.Now.AddYears(-1), 1000); await contratoDAO.AddAsync(contrato); await context.SaveChangesAsync(); var registroDeFeriasCadastrado = new OcorrenciaDeFerias(contrato, contrato.PeriodoAquisitivo, 30, 0); var feriasDAO = FabricGenericDAO <IOcorrenciaDeFeriasDao> .Crie(context); await feriasDAO.AddAsync(registroDeFeriasCadastrado); await context.SaveChangesAsync(); var registroDeFerias = RegistrarOcorrenciaDeFeriasViewModelBuilder.CrieConsiderandoContrato(contrato); // Act var response = await Client.PostAsync("api/ocorrenciadeferias", registroDeFerias.ToJson()); var resultado = await JsonToObject <Resposta> .Convert(response); // Assert Assert.False(resultado.Success); Assert.Equal(System.Net.HttpStatusCode.BadRequest, response.StatusCode); Assert.True(resultado.Errors.Any()); }
public async Task Selecionar_ocorrencia_de_um_contrato() { // Arrange var contexto = new InMemoryDBContext().Crie(); var colaborador = new ColaboradorBuilder().CrieColaboradorSucesso().Get; var contratoDAO = FabricGenericDAO <IContratoDao> .Crie(contexto); var colaboradorDAO = FabricGenericDAO <IColaboradorDAO> .Crie(contexto); var ocorrenciaDeFeriasDAO = FabricGenericDAO <IOcorrenciaDeFeriasDao> .Crie(contexto); var repository = new ColaboradorRepository(contratoDAO, colaboradorDAO); await repository.RealizeAdmissao(colaborador); var ferias = new OcorrenciaDeFerias(colaborador.Contratos.First(), colaborador.Contratos.First().DataInicio.AddYears(1), 30, 0); await ocorrenciaDeFeriasDAO.AddAsync(ferias); await contexto.SaveChangesAsync(); var ocorrenciaFeriasRepository = new OcorrenciaDeFeriasRepository(ocorrenciaDeFeriasDAO); // act var result = await ocorrenciaFeriasRepository.ObtenhaOcorrenciasDoPeriodoAquisitivo(colaborador.Contratos.First().Id, colaborador.Contratos.First().PeriodoAquisitivo); // Assert Assert.NotNull(result); }
public static AgendamentoDeFeriasQueryEvent Crie( Colaborador colaborador, Guid idContrato, OcorrenciaDeFerias ocorrenciaDeFerias) => new AgendamentoDeFeriasQueryEvent(colaborador, idContrato, ocorrenciaDeFerias.DataDeInicio, ocorrenciaDeFerias.DiasDeFerias, ocorrenciaDeFerias.DiasDeAbono, ocorrenciaDeFerias.PeriodoArquisitivo, ocorrenciaDeFerias.FeriasParcelada);