public async Task Migrar(MigrarPlanoAulaDto migrarPlanoAulaDto) { var usuario = await servicoUsuario.ObterUsuarioLogado(); var planoAulaDto = repositorio.ObterPorId(migrarPlanoAulaDto.PlanoAulaId); var aula = repositorioAula.ObterPorId(planoAulaDto.AulaId); await ValidarMigracao(migrarPlanoAulaDto, usuario.CodigoRf, usuario.EhProfessorCj(), aula.UeId); var objetivosPlanoAulaDto = await repositorioObjetivosAula.ObterObjetivosPlanoAula(migrarPlanoAulaDto.PlanoAulaId); unitOfWork.IniciarTransacao(); foreach (var planoTurma in migrarPlanoAulaDto.IdsPlanoTurmasDestino) { AulaConsultaDto aulaConsultaDto = await repositorioAula.ObterAulaDataTurmaDisciplina( planoTurma.Data, planoTurma.TurmaId, migrarPlanoAulaDto.DisciplinaId ); if (aulaConsultaDto == null) { throw new NegocioException($"Não há aula cadastrada para a turma {planoTurma.TurmaId} para a data {planoTurma.Data.ToString("dd/MM/yyyy")} nesta disciplina!"); } var planoCopia = new PlanoAulaDto() { Id = planoTurma.Sobreescrever ? migrarPlanoAulaDto.PlanoAulaId : 0, AulaId = aulaConsultaDto.Id, Descricao = planoAulaDto.Descricao, DesenvolvimentoAula = planoAulaDto.DesenvolvimentoAula, LicaoCasa = migrarPlanoAulaDto.MigrarLicaoCasa ? planoAulaDto.LicaoCasa : string.Empty, ObjetivosAprendizagemJurema = !usuario.EhProfessorCj() || migrarPlanoAulaDto.MigrarObjetivos ? objetivosPlanoAulaDto.Select(o => o.ObjetivoAprendizagemPlano.ObjetivoAprendizagemJuremaId).ToList() : null, RecuperacaoAula = migrarPlanoAulaDto.MigrarRecuperacaoAula ? planoAulaDto.RecuperacaoAula : string.Empty }; await Salvar(planoCopia, false); } unitOfWork.PersistirTransacao(); }
public async Task <IEnumerable <ObjetivoAprendizagemAula> > ObterObjetivosPlanoAula(long planoAulaId) { return(await repositorio.ObterObjetivosPlanoAula(planoAulaId)); }