Beispiel #1
0
        // GET: Modulo/Create
        public async Task <IActionResult> Create()
        {
            try
            {
                var exercicios = await dbContext.Exercicios.Where(e => e.Ativo == true)
                                 .OrderBy(e => e.Descricao).ToListAsync();

                if (exercicios.Count() != 0)
                {
                    ModuloCreateEditViewModel mcevm = new ModuloCreateEditViewModel();

                    mcevm.CodigosExerciciosModulo = new int[0];
                    mcevm.ExerciciosDisponiveis   = exercicios;

                    return(View(mcevm));
                }
                else
                {
                    TempData["Mensagem"] = "Não há exercícios cadastrados no momento!";
                    TempData["Sucesso"]  = false;
                }
            }
            catch (Exception ex)
            {
                TempData["Mensagem"]  = "Erro ao cadastrar módulo!";
                TempData["Exception"] = ex;
                TempData["Sucesso"]   = false;
            }

            return(RedirectToAction("Index"));
        }
Beispiel #2
0
        // GET: Modulo/Edit
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            try
            {
                Modulo modulo = await dbContext.Modulos.Where(m => m.CodModulo == id.Value &&
                                                              m.Ativo == true).SingleOrDefaultAsync();

                if (modulo == null)
                {
                    return(NotFound());
                }

                var exerciciosDisponiveis = await dbContext.Exercicios.Where(e => e.Ativo == true)
                                            .OrderBy(e => e.Descricao).ToListAsync();

                var exerciciosModulo = await dbContext.ExerciciosModulo.Where(em =>
                                                                              em.CodModulo == modulo.CodModulo && em.Ativo == true)
                                       .OrderBy(em => em.CodExercicio).ToListAsync();

                ModuloCreateEditViewModel mcevm = new ModuloCreateEditViewModel();

                mcevm.CodModulo               = modulo.CodModulo;
                mcevm.Titulo                  = modulo.Titulo;
                mcevm.Nivel                   = modulo.Nivel;
                mcevm.Explicacao              = modulo.Explicacao;
                mcevm.QtdeExercicios          = modulo.QtdeExercicios;
                mcevm.ExerciciosDisponiveis   = exerciciosDisponiveis;
                mcevm.CodigosExerciciosModulo = new int[exerciciosModulo.Count];

                int i;
                for (i = 0; i < exerciciosModulo.Count; i++)
                {
                    var em = exerciciosModulo.ElementAt(i);
                    mcevm.CodigosExerciciosModulo[i] = em.CodExercicio;
                }

                return(View(mcevm));
            }
            catch (Exception ex)
            {
                TempData["Mensagem"]  = "Erro ao visualizar módulo!";
                TempData["Exception"] = ex;
                TempData["Sucesso"]   = false;
            }

            return(RedirectToAction("Index"));
        }
Beispiel #3
0
        public async Task <IActionResult> Create(ModuloCreateEditViewModel mcevm, int[] CodigosExerciciosModulo)
        {
            try
            {
                using (await dbContext.Database.BeginTransactionAsync())
                {
                    if (ModelState.IsValid)
                    {
                        mcevm.Titulo = mcevm.Titulo.Trim();

                        Modulo modulo = await dbContext.Modulos.Where(m => m.Titulo == mcevm.Titulo &&
                                                                      m.Ativo == true).SingleOrDefaultAsync();

                        if (modulo == null)
                        {
                            IEnumerable <Modulo> modulosNivel = await dbContext.Modulos.Where(m => m.Nivel
                                                                                              == mcevm.Nivel && m.Ativo == true).ToListAsync();

                            if (modulosNivel.Count() < 3)
                            {
                                if (CodigosExerciciosModulo.Count() > 0)
                                {
                                    modulo                = new Modulo();
                                    modulo.Titulo         = mcevm.Titulo;
                                    modulo.Explicacao     = mcevm.Explicacao;
                                    modulo.QtdeExercicios = mcevm.QtdeExercicios;
                                    modulo.Nivel          = mcevm.Nivel;
                                    modulo.Ativo          = true;

                                    dbContext.Modulos.Add(modulo);
                                    await dbContext.SaveChangesAsync();

                                    foreach (var codigo in CodigosExerciciosModulo)
                                    {
                                        ExercicioModulo em = new ExercicioModulo();
                                        em.CodExercicio = codigo;
                                        em.CodModulo    = modulo.CodModulo;
                                        em.Ativo        = true;

                                        dbContext.ExerciciosModulo.Add(em);
                                    }

                                    await dbContext.SaveChangesAsync();

                                    if (dbContext.Database.CurrentTransaction != null)
                                    {
                                        dbContext.Database.CommitTransaction();
                                    }
                                    TempData["Mensagem"] = "Módulo cadastrado com sucesso!";
                                    TempData["Sucesso"]  = true;
                                    return(RedirectToAction("Index"));
                                }
                                else
                                {
                                    TempData["Mensagem"] = "Pelo menos um exercício deve ser selecionado!";
                                }
                            }
                            else
                            {
                                TempData["Mensagem"] = "Limite de módulos nesse nível já foi atingido!";
                            }
                        }
                        else
                        {
                            TempData["Mensagem"] = "Já existe módulo com esse título!";
                        }
                    }
                }

                mcevm.CodigosExerciciosModulo = CodigosExerciciosModulo;
                mcevm.ExerciciosDisponiveis   = await dbContext.Exercicios.Where(e => e.Ativo == true)
                                                .OrderBy(e => e.Descricao).ToListAsync();
            }
            catch (Exception ex)
            {
                if (dbContext.Database.CurrentTransaction != null)
                {
                    dbContext.Database.RollbackTransaction();
                }

                TempData["Mensagem"]  = "Erro ao cadastrar módulo!";
                TempData["Exception"] = ex;
                TempData["Sucesso"]   = false;
                return(RedirectToAction("Index"));
            }

            return(View(mcevm));
        }