Beispiel #1
0
        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 }));
            }
        }
Beispiel #2
0
        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"));
            }
        }
Beispiel #3
0
        // 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));
            }
        }
Beispiel #4
0
        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"));
            }
        }
Beispiel #5
0
        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 }));
            }
        }