public ActionResult PridatKomentar(String textKomentare) { using (ModelContainer db = new ModelContainer()) { //získám ID žádosti int idZadosti = int.Parse(Session["idKonkretniZadost"].ToString()); //vyhledám žádost kterou upravuji Zadost upravovanaZadost = db.Zadosti.Include(x => x.Interpret).Include(x => x.ZadostOd).Include(x => x.Prispevek).Where(x => x.Id == idZadosti).First(); //změnim komentář u žádosti upravovanaZadost.Komentar = textKomentare; upravovanaZadost.Komentar = WebUtility.HtmlEncode(upravovanaZadost.Komentar); //změním stav objektu db.Entry(upravovanaZadost).State = System.Data.Entity.EntityState.Modified; //uložím změny db.SaveChanges(); //return View(upravovanaZadost); return(RedirectToAction("KonkretniZadost", new { id = idZadosti })); } }
public ActionResult NovyPrispevek(Prispevek prispevek) { using (ModelContainer db = new ModelContainer()) { int idUzivatel = int.Parse(Session["uzivatelID"].ToString()); //vyhledám potřebné informace - aktuálně přihlášený uživatel a interpreta ke kterému potřebuji vložit příspěvek Uzivatel aktualnePrihlaseny = db.Uzivatele.Where(x => x.Id == idUzivatel).First(); String nazevInterpreta = Session["interpretNazev"].ToString(); Interpret aktualniInterpret = db.Interpreti.Where(x => x.Nazev == nazevInterpreta).First(); //doplnim vyhledané informace prispevek.DatumPridani = DateTime.Now; prispevek.Interpret = aktualniInterpret; prispevek.Autor = aktualnePrihlaseny; prispevek.Schvalen = false; //vyhledám uživatele který je správcem interpreta int idSpravce = db.SpravciInterpretu.Where(x => x.Interpret.Nazev == nazevInterpreta).Select(x => x.UzivatelId).First(); Uzivatel spravceInterpreta = db.Uzivatele.Where(x => x.Id == idSpravce).First(); prispevek.Obsah = System.Net.WebUtility.HtmlEncode(prispevek.Obsah); //vytvořím žádost Zadost novaZadost = new Zadost(); novaZadost.Interpret = aktualniInterpret; novaZadost.Prispevek = prispevek; novaZadost.StavZadosti = StavZadosti.Cekajici; novaZadost.ZadostOd = aktualnePrihlaseny; novaZadost.ZadostKomu = spravceInterpreta; novaZadost.TypZadosti = TypZadosti.ZadostPisen; //pokud uživatel který vkládá příspěvek je zároveň správcem daného interpreta pak se nemusí čekat na schválení žádosti a příspěvek bude přidán if (spravceInterpreta.Prezdivka.Equals(aktualnePrihlaseny.Prezdivka)) { novaZadost.StavZadosti = StavZadosti.Schvalena; prispevek.Schvalen = true; } //vložím nový příspěvek db.Prispevky.Add(prispevek); //vložím novou žádost db.Zadosti.Add(novaZadost); //uložím změny db.SaveChanges(); //vrátit view které zobrazí odeslání žádosti o příspěvku a vysvětlení co dál return(View("NovyPrispevekPotvrzeni")); } }
// GET: Zadost - zobrazí podrobnosti žádosti s daným ID + možnost upravit stav žádosti public ActionResult KonkretniZadost(int id) { using (ModelContainer db = new ModelContainer()) { Zadost vyhledavanaZadost = db.Zadosti.Include(x => x.Interpret).Include(x => x.ZadostOd).Include(x => x.Prispevek).Where(x => x.Id == id).First(); //uložím ID do Session pro pozdější použití Session["idKonkretniZadost"] = vyhledavanaZadost.Id; //zjistím aktuální počet nepřečtených zpráv int idPrihlaseneho = int.Parse(Session["uzivatelID"].ToString()); Uzivatel prihlasenyUzivatel = db.Uzivatele.Where(x => x.Id == idPrihlaseneho).First(); var pocetNeprectenychZprav = db.Zpravy.Where(x => x.UzivatelKomuId == prihlasenyUzivatel.Id).Where(x => x.CasOdeslani > prihlasenyUzivatel.PosledniAktivita).ToList(); Session["neprecteneZpravy"] = pocetNeprectenychZprav.Count(); vyhledavanaZadost.Komentar = WebUtility.HtmlDecode(vyhledavanaZadost.Komentar); return(View(vyhledavanaZadost)); } }
public ActionResult ZadostRedaktor(Zadost novaZadost) { using (ModelContainer db = new ModelContainer()) { int idUzivatele = int.Parse(Session["uzivatelID"].ToString()); //vyhledám aktuálně přihlášeného uživatele Uzivatel prihlasenyUzivatel = db.Uzivatele.Where(x => x.Id == idUzivatele).First(); String adminPrezdivka; //vyhledám administrátora kterému pošlu žádost o roli redaktora using (IdentityDbContext aspContext = new IdentityDbContext()) { String adminRoleId = aspContext.Roles.Where(x => x.Name == "admin").Select(x => x.Id).First(); adminPrezdivka = aspContext.Users.Include(x => x.Roles).Where(x => x.Roles.Any(y => y.RoleId == adminRoleId)).Select(x => x.UserName).First(); } Uzivatel admin = db.Uzivatele.Where(x => x.Prezdivka == adminPrezdivka).First(); novaZadost.StavZadosti = StavZadosti.Cekajici; novaZadost.TypZadosti = TypZadosti.ZadostRedaktor; novaZadost.ZadostOd = prihlasenyUzivatel; novaZadost.ZadostKomu = admin; //přebytečné povinné atributy které nepoužiji ale musí být v tabulce novaZadost.Interpret = db.Interpreti.Take(1).First(); novaZadost.Prispevek = db.Prispevky.Take(1).First(); db.Entry(novaZadost).State = EntityState.Added; //vložím novou žádost db.Zadosti.Add(novaZadost); //uložit změny db.SaveChanges(); //vrátím view s potvrzením o odeslání žádosti return(View("PotvrzeniZadosti")); } }
public ActionResult KonkretniZadost(String novyStavZadosti) { using (ModelContainer db = new ModelContainer()) { //získám ID žádosti int idZadosti = int.Parse(Session["idKonkretniZadost"].ToString()); //vyhledám žádost kterou upravuji Zadost upravovanaZadost = db.Zadosti.Include(x => x.Interpret).Include(x => x.ZadostOd).Include(x => x.Prispevek).Where(x => x.Id == idZadosti).First(); //změním stav žádosti upravovanaZadost.StavZadosti = ZjistiStavZadosti(novyStavZadosti); //změním stav objektu db.Entry(upravovanaZadost).State = System.Data.Entity.EntityState.Modified; upravovanaZadost.Komentar = WebUtility.HtmlEncode(upravovanaZadost.Komentar); //NÁSLEDKY ZMĚNY STAVU ŽÁDOSTI dle typu žádosti a novém stavu if (upravovanaZadost.TypZadosti == TypZadosti.ZadostPisen) { if (upravovanaZadost.StavZadosti == StavZadosti.Schvalena) { //změním Schvaleno u Prispevek na true Prispevek zmenaViditelnosti = db.Prispevky.Where(x => x.Id == upravovanaZadost.PrispevekId).First(); zmenaViditelnosti.Schvalen = true; db.Entry(zmenaViditelnosti).State = EntityState.Modified; } else //StavZadosti.Zamitnuta { //změním Schvaleno u Prispevek na false Prispevek zmenaViditelnosti = db.Prispevky.Where(x => x.Id == upravovanaZadost.PrispevekId).First(); zmenaViditelnosti.Schvalen = false; db.Entry(zmenaViditelnosti).State = EntityState.Modified; } } else //TypZadosti.ZadostRedaktor { int idPrihlasenehoUzivatele = int.Parse(Session["uzivatelID"].ToString()); if (upravovanaZadost.StavZadosti == StavZadosti.Schvalena) { //přidám uživateli roli v databázové tabulce Uzivatele Uzivatel pridanaRole = db.Uzivatele.Where(x => x.Id == upravovanaZadost.ZadostOd.Id).First(); pridanaRole.Role = TypRoleUzivatele.Redaktor; db.Entry(pridanaRole).State = EntityState.Modified; //přidám uživateli roli v databázové tabulce AspUserRoles RoleManager <IdentityRole> spravceRoli = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(new IdentityDbContext())); UserManager <ApplicationUser> spravceUzivatelu = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new ApplicationDbContext())); ApplicationUser uzivatel = spravceUzivatelu.FindByName(pridanaRole.Prezdivka); spravceUzivatelu.AddToRole(uzivatel.Id, "redaktor"); } else //pokud není žádost schválena - nic se nemění, pouze pokud již byla schválena předtím tak odeberu roli redaktora //odeberu uživateli roli v databázové tabulce Uzivatele { Uzivatel pridanaRole = db.Uzivatele.Where(x => x.Id == upravovanaZadost.ZadostOd.Id).First(); pridanaRole.Role = TypRoleUzivatele.PrihlasenyUzivatel; db.Entry(pridanaRole).State = EntityState.Modified; //přidám uživateli roli v databázové tabulce AspUserRoles RoleManager <IdentityRole> spravceRoli = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(new IdentityDbContext())); UserManager <ApplicationUser> spravceUzivatelu = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new ApplicationDbContext())); ApplicationUser uzivatel = spravceUzivatelu.FindByName(pridanaRole.Prezdivka); spravceUzivatelu.RemoveFromRole(uzivatel.Id, "redaktor"); } } //uložím změny db.SaveChanges(); //return View(upravovanaZadost); return(RedirectToAction("KonkretniZadost", new { id = idZadosti })); } }