public async Task <AuditoriaDto> Executar(InserirDevolutivaDto param) { IEnumerable <Tuple <long, DateTime> > dados = await mediator.Send(new ObterDatasEfetivasDiariosQuery(param.TurmaCodigo, param.CodigoComponenteCurricular, param.PeriodoInicio.Date, param.PeriodoFim.Date)); if (!dados.Any()) { throw new NegocioException("Diários de bordo não encontrados para aplicar Devolutiva."); } DateTime inicioEfetivo = dados.Select(x => x.Item2.Date).Min(); DateTime fimEfetivo = dados.Select(x => x.Item2.Date).Max(); await ValidarDevolutivaNoPeriodo(param.TurmaCodigo, param.CodigoComponenteCurricular, param.PeriodoInicio.Date, param.PeriodoFim.Date); var turma = await ObterTurma(param.TurmaCodigo); var bimestre = await ValidarBimestreDiarios(turma, inicioEfetivo, fimEfetivo); await ValidarBimestreEmAberto(turma, bimestre); IEnumerable <long> idsDiarios = dados.Select(x => x.Item1); AuditoriaDto auditoria = await mediator.Send(new InserirDevolutivaCommand(param.CodigoComponenteCurricular, idsDiarios, inicioEfetivo, fimEfetivo, param.Descricao, turma.Id)); bool diariosAtualizados = await mediator.Send(new AtualizarDiarioBordoComDevolutivaCommand(idsDiarios, auditoria.Id)); return(auditoria); }
private static AuditoriaDto MapearRegistro(ContextoSe contexto, AuditoriaDtm registro) { var elemento = new AuditoriaDto(); elemento.Id = registro.Id; elemento.IdElemento = registro.IdElemento; elemento.IdUsuario = registro.IdUsuario; elemento.AuditadoEl = registro.AuditadoEl; elemento.Operacion = registro.Operacion; elemento.registroJson = registro.registroJson; elemento.Usuario = UsuarioDtm.NombreCompleto(Entorno.GestorDeUsuarios.LeerUsuario(contexto, elemento.IdUsuario)); return(elemento); }
public async Task <List <CartaIntencoesRetornoPersistenciaDto> > Executar(CartaIntencoesPersistenciaDto param) { List <CartaIntencoesRetornoPersistenciaDto> auditorias = new List <CartaIntencoesRetornoPersistenciaDto>(); var turmaId = await mediator.Send(new ObterTurmaIdPorCodigoQuery(param.CodigoTurma)); if (turmaId == 0) { throw new NegocioException("Não foi possível encontrar a turma."); } var aberto = await AulaDentroDoPeriodo(mediator, param.CodigoTurma, DateTime.Now); if (!aberto) { throw new NegocioException("Não é possível salvar carta de intenções pois o período não está aberto."); } AuditoriaDto auditoria = null; foreach (CartaIntencoesDto carta in param.Cartas) { if (carta.Id == 0) { auditoria = await mediator.Send(new InserirCartaIntencoesCommand(carta, turmaId, param.ComponenteCurricularId)); } else { var existente = await mediator.Send(new ObterCartaIntentocesPorIdQuery(carta.Id)); auditoria = await mediator.Send(new AlterarCartaIntencoesCommand(carta, existente, turmaId, param.ComponenteCurricularId)); } auditorias.Add(new CartaIntencoesRetornoPersistenciaDto { PeriodoEscolarId = carta.PeriodoEscolarId, Auditoria = auditoria }); } return(auditorias); }
public ActionResult Post([FromBody] AuditoriaDto auditoria) { return(Ok()); }