Exemplo n.º 1
0
        private async Task ValidaTurmasProfessor(MigrarPlanoAnualDto migrarPlanoAnualDto, PlanoAnualDto planoAnualDto)
        {
            var turmasAtribuidasAoProfessor = await consultasProfessor.ObterTurmasAtribuidasAoProfessorPorEscolaEAnoLetivo(migrarPlanoAnualDto.RFProfessor, planoAnualDto.EscolaId, planoAnualDto.AnoLetivo.Value);

            var idsTurmasProfessor = turmasAtribuidasAoProfessor?.Select(c => c.CodigoTurma).ToList();

            if (idsTurmasProfessor == null || migrarPlanoAnualDto.IdsTurmasDestino.Any(c => !idsTurmasProfessor.Contains(c)))
            {
                throw new NegocioException("Somente é possível migrar o plano anual para turmas atribuidas ao professor");
            }
        }
Exemplo n.º 2
0
        public async Task Migrar(MigrarPlanoAnualDto migrarPlanoAnualDto)
        {
            var planoAnualDto = migrarPlanoAnualDto.PlanoAnual;

            using (var transacao = unitOfWork.IniciarTransacao())
            {
                foreach (var bimestrePlanoAnual in planoAnualDto.Bimestres)
                {
                    var planoAnualOrigem = ObterPlanoAnualSimplificado(planoAnualDto, bimestrePlanoAnual.Bimestre.Value);

                    if (planoAnualOrigem == null)
                    {
                        throw new NegocioException("Plano anual de origem não encontrado");
                    }

                    await ValidaTurmasProfessor(migrarPlanoAnualDto, planoAnualDto);

                    foreach (var turmaId in migrarPlanoAnualDto.IdsTurmasDestino)
                    {
                        var planoCopia = new PlanoAnualDto(
                            planoAnualDto.AnoLetivo,
                            planoAnualDto.Bimestres,
                            planoAnualDto.EscolaId,
                            planoAnualDto.Id,
                            planoAnualDto.TurmaId,
                            planoAnualDto.ComponenteCurricularEolId);

                        planoCopia.TurmaId = turmaId;

                        var planoAnual = ObterPlanoAnualSimplificado(planoCopia, bimestrePlanoAnual.Bimestre.Value);

                        if (planoAnual == null)
                        {
                            planoAnual = MapearParaDominio(planoCopia, planoAnual, bimestrePlanoAnual);
                        }

                        planoAnual.Descricao = planoAnualOrigem.Descricao;
                        Salvar(planoCopia, planoAnual, bimestrePlanoAnual);
                    }
                }

                unitOfWork.PersistirTransacao();
            }
        }
Exemplo n.º 3
0
        public async Task Migrar(MigrarPlanoAnualDto migrarPlanoAnualDto)
        {
            var planoAnualDto = migrarPlanoAnualDto.PlanoAnual;
            var planoCopia    = new PlanoAnualDto(
                planoAnualDto.AnoLetivo,
                planoAnualDto.Bimestres,
                planoAnualDto.EscolaId,
                planoAnualDto.Id,
                planoAnualDto.TurmaId,
                planoAnualDto.ComponenteCurricularEolId);

            unitOfWork.IniciarTransacao();

            foreach (var bimestrePlanoAnual in migrarPlanoAnualDto.BimestresDestino.OrderBy(c => c))
            {
                var planoAnualOrigem = await ObterPlanoAnualSimplificado(planoAnualDto, bimestrePlanoAnual);

                if (planoAnualOrigem == null)
                {
                    throw new NegocioException("Plano anual de origem não encontrado");
                }

                var bimestreAtual = planoAnualDto.Bimestres.FirstOrDefault(c => c.Bimestre == bimestrePlanoAnual);
                foreach (var turmaId in migrarPlanoAnualDto.IdsTurmasDestino)
                {
                    planoCopia.TurmaId = turmaId;

                    var planoAnual = await ObterPlanoAnualSimplificado(planoCopia, bimestrePlanoAnual);

                    if (planoAnual == null)
                    {
                        planoAnual = MapearParaDominio(planoCopia, planoAnual, bimestrePlanoAnual, bimestreAtual.Descricao);
                    }

                    planoAnual.Descricao = planoAnualOrigem.Descricao;
                    Salvar(planoCopia, planoAnual, bimestreAtual);
                }
            }
            unitOfWork.PersistirTransacao();
        }
Exemplo n.º 4
0
 public IActionResult Migrar(MigrarPlanoAnualDto migrarPlanoAnualDto, [FromServices] IComandosPlanoAnual comandosPlanoAnual)
 {
     comandosPlanoAnual.Migrar(migrarPlanoAnualDto);
     return(Ok());
 }
Exemplo n.º 5
0
        public async Task <IActionResult> Migrar(MigrarPlanoAnualDto migrarPlanoAnualDto, [FromServices] IComandosPlanoAnual comandosPlanoAnual)
        {
            await comandosPlanoAnual.Migrar(migrarPlanoAnualDto);

            return(Ok());
        }