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); }