Exemple #1
0
        public ActionResult Edit(Programacao programacao, HttpPostedFileBase imagemUpload, HttpPostedFileBase logoUpload, int[] Apresent, int[] Participantes, string horariosTotal, string[] diadaSemana)
        {
            var dayList = from DayOfWeek t in Enum.GetValues(typeof(DayOfWeek))
                          select new { ID = (int)t, Name = Utils.WeekDayName(t) };


            ViewBag.diaSemana = new SelectList(dayList, "ID", "Name", programacao.diaSemana);

            if (ModelState.IsValid)
            {
                db.Entry(programacao).State = EntityState.Modified;
                db.Entry(programacao).Collection("Apresentadores").Load();

                programacao.Apresentadores.Clear();

                if (Apresent != null)
                {
                    foreach (int id in Apresent)
                    {
                        var dbApresent = db.Apresentadores.Find(id);
                        programacao.Apresentadores.Add(dbApresent);
                    }
                }

                if (Participantes != null)
                {
                    foreach (int id in Participantes)
                    {
                        var dbApresent = db.Apresentadores.Find(id);
                        programacao.Apresentadores.Add(dbApresent);
                    }
                }

                int suffix = 0;

                do
                {
                    programacao.chave = programacao.nome.GenerateSlug() + (suffix > 0 ? (suffix++).ToString() : "");
                    suffix++;
                } while (db.Programacao.Where(o => o.chave == programacao.chave && o.id != programacao.id).Count() > 0);


                db.Entry(programacao).Property("dataCadastro").IsModified = false;



                #region tratamento de horarios
                List <Horario_programacao> horasAntigas = db.Horario_programacao.Where(x => x.idPrograma == programacao.id).ToList();
                foreach (var horaAntiga in horasAntigas)
                {
                    db.Horario_programacao.Remove(horaAntiga);
                }

                if (programacao.periodo == 2) // horario e dia indeterminado
                {
                    Horario_programacao horario = new Horario_programacao
                    {
                        diaSemana   = null,
                        horario     = null,
                        idPrograma  = programacao.id,
                        Programacao = programacao
                    };
                    db.Horario_programacao.Add(horario);
                    db.SaveChanges();
                }
                else
                {
                    string[] result;
                    string[] stringSeparators  = new string[] { "/" };
                    string[] stringSeparators2 = new string[] { "," };

                    result = horariosTotal.Split(stringSeparators, StringSplitOptions.None);

                    //array de horarios pra cada dia
                    string[] segunda;
                    string[] terca;
                    string[] quarta;
                    string[] quinta;
                    string[] sexta;
                    string[] sabado;
                    string[] domingo;

                    //alimentos com os horarios
                    segunda = result[0].Split(stringSeparators2, StringSplitOptions.None);
                    terca   = result[1].Split(stringSeparators2, StringSplitOptions.None);
                    quarta  = result[2].Split(stringSeparators2, StringSplitOptions.None);
                    quinta  = result[3].Split(stringSeparators2, StringSplitOptions.None);
                    sexta   = result[4].Split(stringSeparators2, StringSplitOptions.None);
                    sabado  = result[5].Split(stringSeparators2, StringSplitOptions.None);
                    domingo = result[6].Split(stringSeparators2, StringSplitOptions.None);


                    if (segunda[0] != "" || diadaSemana.Contains("box-segunda"))
                    {
                        foreach (var hr in segunda)
                        {
                            Horario_programacao horario = new Horario_programacao
                            {
                                diaSemana   = 1,
                                horario     = (string.IsNullOrEmpty(hr) ? null : hr),
                                idPrograma  = programacao.id,
                                Programacao = programacao
                            };
                            db.Horario_programacao.Add(horario);
                        }
                    }
                    if (terca[0] != "" || diadaSemana.Contains("box-terca"))
                    {
                        foreach (var hr in terca)
                        {
                            Horario_programacao horario = new Horario_programacao
                            {
                                diaSemana   = 2,
                                horario     = (string.IsNullOrEmpty(hr) ? null : hr),
                                idPrograma  = programacao.id,
                                Programacao = programacao
                            };
                            db.Horario_programacao.Add(horario);
                        }
                    }
                    if (quarta[0] != "" || diadaSemana.Contains("box-quarta"))
                    {
                        foreach (var hr in quarta)
                        {
                            Horario_programacao horario = new Horario_programacao
                            {
                                diaSemana   = 3,
                                horario     = (string.IsNullOrEmpty(hr) ? null : hr),
                                idPrograma  = programacao.id,
                                Programacao = programacao
                            };
                            db.Horario_programacao.Add(horario);
                        }
                    }
                    if (quinta[0] != "" || diadaSemana.Contains("box-quinta"))
                    {
                        foreach (var hr in quinta)
                        {
                            Horario_programacao horario = new Horario_programacao
                            {
                                diaSemana   = 4,
                                horario     = (string.IsNullOrEmpty(hr) ? null : hr),
                                idPrograma  = programacao.id,
                                Programacao = programacao
                            };
                            db.Horario_programacao.Add(horario);
                        }
                    }
                    if (sexta[0] != "" || diadaSemana.Contains("box-sexta"))
                    {
                        foreach (var hr in sexta)
                        {
                            Horario_programacao horario = new Horario_programacao
                            {
                                diaSemana   = 5,
                                horario     = (string.IsNullOrEmpty(hr) ? null : hr),
                                idPrograma  = programacao.id,
                                Programacao = programacao
                            };
                            db.Horario_programacao.Add(horario);
                        }
                    }
                    if (sabado[0] != "" || diadaSemana.Contains("box-sabado"))
                    {
                        foreach (var hr in sabado)
                        {
                            Horario_programacao horario = new Horario_programacao
                            {
                                diaSemana   = 6,
                                horario     = (string.IsNullOrEmpty(hr) ? null : hr),
                                idPrograma  = programacao.id,
                                Programacao = programacao
                            };
                            db.Horario_programacao.Add(horario);
                        }
                    }
                    if (domingo[0] != "" || diadaSemana.Contains("box-domingo"))
                    {
                        foreach (var hr in domingo)
                        {
                            Horario_programacao horario = new Horario_programacao
                            {
                                diaSemana   = 0,
                                horario     = (string.IsNullOrEmpty(hr) ? null : hr),
                                idPrograma  = programacao.id,
                                Programacao = programacao
                            };
                            db.Horario_programacao.Add(horario);
                        }
                    }

                    db.SaveChanges();
                }
                #endregion

                GerenciaLogs.saveLog(ref db, WebSecurity.GetUserId(User.Identity.Name), areaADM, TipoAcesso.Edicao, programacao.id);
                return(RedirectToAction("Index"));
            }

            ViewBag.EditoriaIdProg = db.Editoriais.Where(ed => ed.chave == "programacao").Select(ed => ed.id).FirstOrDefault();
            return(View(programacao));
        }
Exemple #2
0
        public ActionResult Create(Programacao programacao, HttpPostedFileBase imagem, HttpPostedFileBase logo, int[] ApresentadoresId, int[] ParticipantesId, string horariosTotal, string[] diadaSemana)
        {
            var dayList = from DayOfWeek t in Enum.GetValues(typeof(DayOfWeek))
                          select new { ID = (int)t, Name = Utils.WeekDayName(t) };

            if (ModelState.IsValid)
            {
                if (ApresentadoresId != null)
                {
                    foreach (var apresentador in ApresentadoresId)
                    {
                        var apresentadores = db.Apresentadores.Find(apresentador);

                        programacao.Apresentadores.Add(apresentadores);
                    }
                }

                if (ParticipantesId != null)
                {
                    foreach (var participante in ParticipantesId)
                    {
                        var participantes = db.Apresentadores.Find(participante);

                        programacao.Apresentadores.Add(participantes);
                    }
                }

                programacao.dataCadastro = DateTime.Now;
                db.Programacao.Add(programacao);

                /*
                 * if (imagem != null)
                 * {
                 *  var pathCapa = Server.MapPath(caminhoCapa);
                 *  var pathLogo = Server.MapPath(caminhoLogo);
                 * // programacao.logo = Utils.SaveAndCropImage(logo, pathLogo, 0, 0, 122, 104);
                 *  programacao.imagem = Utils.SaveAndCropImage(imagem, pathCapa, 0, 0, 680, 180);
                 *
                 * }
                 * else
                 * {
                 *  ModelState.AddModelError("imagem", "É necessário uma capa.");
                 * //   ModelState.AddModelError("logo", "É necessário uma logo para o programa.");
                 *  return View(programacao);
                 * }
                 */

                int suffix = 0;

                do
                {
                    programacao.chave = programacao.nome.GenerateSlug() + (suffix > 0 ? (suffix++).ToString() : "");
                    suffix++;
                } while (db.Programacao.Where(o => o.chave == programacao.chave).Count() > 0);


                db.SaveChanges();

                #region tratamento de horarios

                if (programacao.periodo == 2) // horario e dia indeterminado
                {
                    Horario_programacao horario = new Horario_programacao
                    {
                        diaSemana   = null,
                        horario     = null,
                        idPrograma  = programacao.id,
                        Programacao = programacao
                    };
                    db.Horario_programacao.Add(horario);
                    db.SaveChanges();
                }
                else
                {
                    //========================================== TRATAMENTO DE HORARIOS ==========================================
                    string[] result;
                    string[] stringSeparators  = new string[] { "/" };
                    string[] stringSeparators2 = new string[] { "," };

                    result = horariosTotal.Split(stringSeparators, StringSplitOptions.None);

                    //array de horarios pra cada dia
                    string[] segunda;
                    string[] terca;
                    string[] quarta;
                    string[] quinta;
                    string[] sexta;
                    string[] sabado;
                    string[] domingo;

                    if (diadaSemana == null)
                    {
                        diadaSemana[0] = string.Empty;
                    }

                    //alimentos com os horarios
                    segunda = result[0].Split(stringSeparators2, StringSplitOptions.None);
                    terca   = result[1].Split(stringSeparators2, StringSplitOptions.None);
                    quarta  = result[2].Split(stringSeparators2, StringSplitOptions.None);
                    quinta  = result[3].Split(stringSeparators2, StringSplitOptions.None);
                    sexta   = result[4].Split(stringSeparators2, StringSplitOptions.None);
                    sabado  = result[5].Split(stringSeparators2, StringSplitOptions.None);
                    domingo = result[6].Split(stringSeparators2, StringSplitOptions.None);

                    if (!string.IsNullOrEmpty(segunda[0]) || diadaSemana.Contains("box-segunda"))
                    {
                        foreach (var hr in segunda)
                        {
                            Horario_programacao horario = new Horario_programacao
                            {
                                diaSemana   = 1,
                                horario     = (string.IsNullOrEmpty(hr) ? null : hr),
                                idPrograma  = programacao.id,
                                Programacao = programacao
                            };
                            db.Horario_programacao.Add(horario);
                        }
                    }
                    if (!string.IsNullOrEmpty(terca[0]) || diadaSemana.Contains("box-terca"))
                    {
                        foreach (var hr in terca)
                        {
                            Horario_programacao horario = new Horario_programacao
                            {
                                diaSemana   = 2,
                                horario     = (string.IsNullOrEmpty(hr) ? null : hr),
                                idPrograma  = programacao.id,
                                Programacao = programacao
                            };
                            db.Horario_programacao.Add(horario);
                        }
                    }
                    if (!string.IsNullOrEmpty(quarta[0]) || diadaSemana.Contains("box-quarta"))
                    {
                        foreach (var hr in quarta)
                        {
                            Horario_programacao horario = new Horario_programacao
                            {
                                diaSemana   = 3,
                                horario     = (string.IsNullOrEmpty(hr) ? null : hr),
                                idPrograma  = programacao.id,
                                Programacao = programacao
                            };
                            db.Horario_programacao.Add(horario);
                        }
                    }
                    if (!string.IsNullOrEmpty(quinta[0]) || diadaSemana.Contains("box-quinta"))
                    {
                        foreach (var hr in quinta)
                        {
                            Horario_programacao horario = new Horario_programacao
                            {
                                diaSemana   = 4,
                                horario     = (string.IsNullOrEmpty(hr) ? null : hr),
                                idPrograma  = programacao.id,
                                Programacao = programacao
                            };
                            db.Horario_programacao.Add(horario);
                        }
                    }
                    if (!string.IsNullOrEmpty(sexta[0]) || diadaSemana.Contains("box-sexta"))
                    {
                        foreach (var hr in sexta)
                        {
                            Horario_programacao horario = new Horario_programacao
                            {
                                diaSemana   = 5,
                                horario     = (string.IsNullOrEmpty(hr) ? null : hr),
                                idPrograma  = programacao.id,
                                Programacao = programacao
                            };
                            db.Horario_programacao.Add(horario);
                        }
                    }
                    if (!string.IsNullOrEmpty(sabado[0]) || diadaSemana.Contains("box-sabado"))
                    {
                        foreach (var hr in sabado)
                        {
                            Horario_programacao horario = new Horario_programacao
                            {
                                diaSemana   = 6,
                                horario     = (string.IsNullOrEmpty(hr) ? null : hr),
                                idPrograma  = programacao.id,
                                Programacao = programacao
                            };
                            db.Horario_programacao.Add(horario);
                        }
                    }
                    if (!string.IsNullOrEmpty(domingo[0]) || diadaSemana.Contains("box-domingo"))
                    {
                        foreach (var hr in domingo)
                        {
                            Horario_programacao horario = new Horario_programacao
                            {
                                diaSemana   = 0,
                                horario     = (string.IsNullOrEmpty(hr) ? null : hr),
                                idPrograma  = programacao.id,
                                Programacao = programacao
                            };
                            db.Horario_programacao.Add(horario);
                        }
                    }

                    db.SaveChanges();
                }


                #endregion



                GerenciaLogs.saveLog(ref db, WebSecurity.GetUserId(User.Identity.Name), areaADM, TipoAcesso.Insercao, programacao.id);
                return(RedirectToAction("Index"));
            }

            ViewBag.ApresentadoresId = new MultiSelectList(db.Apresentadores.Where(a => !a.excluido && a.participanteConvidado == false), "id", "nome");
            ViewBag.ParticipantesId  = new MultiSelectList(db.Apresentadores.Where(a => !a.excluido && a.participanteConvidado == true), "id", "nome");

            ViewBag.diaSemana      = new SelectList(dayList, "ID", "Name");
            ViewBag.EditoriaIdProg = db.Editoriais.Where(ed => ed.chave == "programacao").Select(ed => ed.id).FirstOrDefault();

            //var editoriais = db.Editoriais.Where(a => !a.excluido).ToList();
            //int firstId = editoriais.FirstOrDefault().id;
            //ViewBag.EditoriaId = new SelectList(editoriais, "id", "nome", firstId);

            return(View(programacao));
        }