public ActionResult Create([Bind(Include = "Id,Titulo,Descricao,Materia")] Materias materias) { if (ModelState.IsValid && IsValid(materias)) { materias.DataMateria = DateTime.Now; materias.Condicao = (int)Condicao.Proposta; materias.Jornalistas = db.Jornalistas.Where(w => w.Nome == User.Identity.Name).First(); //Pega a seção Secoes Secao = db.Secoes.Find(int.Parse(Request["IdSecao"])); materias.Secoes = Secao; materias.Gerentes = Secao.Gerentes; //Roles.IsUserInRole("Jornalista") db.Materias.Add(materias); //Cria o evento Eventos evento = new Eventos { DataEvento = DateTime.Now, Evento = "Envio inicial", Materias = materias, Pessoas = materias.Jornalistas }; db.Eventos.Add(evento); db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.IdSecao = new SelectList(db.Secoes, "Id", "Secao"); return View(materias); }
public ActionResult Edit([Bind(Include = "Id,Titulo,Descricao,DataMateria,Materia,Condicao,Aprovar,Arquivar")] Materias materias, string btnSalvar) { if (ModelState.IsValid) { string papel = db.Pessoas.Where(w => w.Nome == User.Identity.Name).Select(s => s.Papeis.Papel).First(); //Criar o evento Eventos evento = new Eventos { DataEvento = DateTime.Now, Materias = materias, Pessoas = db.Pessoas.Where(w => w.Nome == User.Identity.Name).First() }; if (papel == "Revisores") { materias.Revisores = db.Revisores.Where(w => w.Nome == User.Identity.Name).First(); } else if (papel == "Publicadores") { materias.Publicadores = db.Publicadores.Where(w => w.Nome == User.Identity.Name).First(); } // Se Aprovar == 0 => ninguém aprovou // Se Aprovar == 1 => jornalista aprovou, no aguardo da aprovação do revisor // Se Aprovar == 2 => revisor aprovou, no aguardo da aprovação do jornalista // Se Aprovar == 3 => ambos aprovaram if (btnSalvar == "Aprovar") { if (papel == "Jornalistas") { if (materias.Aprovar == 0) { materias.Aprovar = 1; evento.Evento = "Matéria aprovada pelo jornalista"; } else if (materias.Aprovar == 2) { materias.Aprovar = 3; materias.Condicao = 3; evento.Evento = "Matéria aprovada pelo jornalista e pelo revisor"; } } else if (papel == "Revisores") { if (materias.Aprovar == 0) { materias.Aprovar = 2; evento.Evento = "Matéria aprovada pelo revisor"; } else if (materias.Aprovar == 1) { materias.Aprovar = 3; materias.Condicao = 3; evento.Evento = "Matéria aprovada pelo revisor e pelo jornalista"; } } //materias.Condicao = 3; //evento.Evento = "Aprovação"; } // Se Arquivar == 0 => ninguém arquivou // Se Arquivar == 1 => jornalista arquivou, no aguardo do revisor arquivar a matéria // Se Arquivar == 2 => revisor arquivou, no aguardo do jornalista arquivar a matéria // Se Arquivar == 3 => ambos arquivaram else if (btnSalvar == "Arquivar") { if (papel == "Jornalistas") { if (materias.Arquivar == 0) { materias.Arquivar = 1; evento.Evento = "Matéria arquivada pelo jornalista"; } else if (materias.Arquivar == 2) { materias.Arquivar = 3; materias.Condicao = 3; evento.Evento = "Matéria arquivada pelo jornalista e pelo revisor"; } } else if (papel == "Revisores") { if (materias.Arquivar == 0) { materias.Arquivar = 2; evento.Evento = "Matéria arquivada pelo revisor"; } else if (materias.Arquivar == 1) { materias.Arquivar = 3; materias.Condicao = 4; evento.Evento = "Matéria arquivada pelo revisor e pelo jornalista"; } } //materias.Condicao = 4; //evento.Evento = "Arquivamento"; } else if (btnSalvar == "Publicar") { materias.Condicao = 5; evento.Evento = "Publicação"; } else { materias.Condicao = 2; evento.Evento = "Revisão"; } db.Entry(materias).State = EntityState.Modified; db.Eventos.Add(evento); db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.IdSecao = new SelectList(db.Secoes, "Id", "Secao", materias.Secoes.Id); return View(materias); }