Ejemplo n.º 1
0
        public ActionResult AdaugaRating(int id, ProdusRating ratingDeAdaugat)
        {
            ratingDeAdaugat.idProdus   = id;
            ratingDeAdaugat.dataReview = DateTime.Now;

            ratingDeAdaugat.idUtilizator   = User.Identity.GetUserId();
            ratingDeAdaugat.numeUtilizator = User.Identity.GetUserName();

            try
            {
                if (ModelState.IsValid)
                {
                    db.ProduseRatinguri.Add(ratingDeAdaugat);
                    db.SaveChanges();

                    UpdateRatingStat(id, ratingDeAdaugat.rating, "NOU");

                    return(Redirect("/Produs/Afisare/" + ratingDeAdaugat.idProdus));
                }
                else
                {
                    TempData["eroareRatingAdaugat"] = true;
                    TempData["ratingEronatAdaugat"] = ratingDeAdaugat;
                    TempData["eroare"] = "Rating-ul trebuie să fe între 1 și 5 stele, si descrierea nu mai lungă de 1024 de caractere!";

                    return(Redirect("/Produs/Afisare/" + ratingDeAdaugat.idProdus));
                }
            }
            catch (Exception)
            {
                TempData["mesaj"] = "Eroare la adaugarea unui comentariu nou";
                return(Redirect("/Produs/Afisare/" + ratingDeAdaugat.idProdus));
            }
        }
Ejemplo n.º 2
0
        public ActionResult StergeRating(int id)
        {
            ProdusRating ratingDeSters = db.ProduseRatinguri.Find(id);

            int idProdusAsociat = ratingDeSters.idProdus;

            if (User.Identity.GetUserId() == ratingDeSters.idUtilizator || User.IsInRole("Admin"))
            {
                try
                {
                    db.ProduseRatinguri.Remove(ratingDeSters);

                    db.SaveChanges();

                    UpdateRatingStat(idProdusAsociat, ratingDeSters.rating, "STERGE");

                    TempData["mesaj"] = "Rating-ul a fost șters cu succes!";

                    return(Redirect("/Produs/Afisare/" + idProdusAsociat));
                }
                catch (Exception)
                {
                    TempData["mesaj"] = "Eroare la ștergerea unui rating";
                    return(Redirect("/Produs/Afisare/" + idProdusAsociat));
                }
            }
            else
            {
                TempData["mesaj"] = "Nu aveți dreptul sa ștergeți acest comentariu!";
                return(Redirect("/Produs/Afisare/" + idProdusAsociat));
            }
        }
Ejemplo n.º 3
0
        public ActionResult AdaugaRating(int id)
        {
            ProdusRating ratingDeAdaugat = new ProdusRating();

            ratingDeAdaugat.idProdus = id;

            return(PartialView("InputRating", ratingDeAdaugat));
        }
Ejemplo n.º 4
0
        public ActionResult EditeazaRating(int id, ProdusRating ratingActualizat)
        {
            ProdusRating ratingDeEditat = db.ProduseRatinguri.Find(id);

            if (User.Identity.GetUserId() == ratingDeEditat.idUtilizator)
            {
                try
                {
                    if (ModelState.IsValid)
                    {
                        if (TryUpdateModel(ratingDeEditat))
                        {
                            int ratingDif = ratingActualizat.rating - ratingDeEditat.rating;

                            ratingDeEditat.rating          = ratingActualizat.rating;
                            ratingDeEditat.descriereRating = ratingActualizat.descriereRating;
                            ratingDeEditat.dataReview      = DateTime.Now;

                            db.SaveChanges();

                            UpdateRatingStat(ratingDeEditat.idProdus, ratingDif, "EDITAT");

                            return(Redirect("/Produs/Afisare/" + ratingDeEditat.idProdus));
                        }
                        else
                        {
                            TempData["mesaj"] = "Nu s-a putut edita review-ul";
                            return(Redirect("/Produs/Afisare/" + ratingDeEditat.idProdus));
                        }
                    }
                    else
                    {
                        TempData["eroareRatingEditat"] = id;
                        ratingActualizat.prodRating    = id;
                        TempData["ratingEronatEditat"] = ratingActualizat;
                        TempData["eroare"]             = "Rating-ul trebuie să fe între 1 și 5 stele, si descrierea nu mai lungă de 1024 de caractere!";

                        return(Redirect("/Produs/Afisare/" + ratingDeEditat.idProdus));
                    }
                }
                catch (Exception)
                {
                    TempData["mesaj"] = "Eroare la editarea review-ului!";
                    return(Redirect("/Produs/Afisare/" + ratingDeEditat.idProdus));
                }
            }
            else
            {
                TempData["mesaj"] = "Nu aveți dreptul să editați acest review!";

                return(Redirect("/Produs/Afisare/" + ratingDeEditat.idProdus));
            }
        }
Ejemplo n.º 5
0
        public ActionResult EditeazaRating(int id)
        {
            ProdusRating ratingDeEditat = db.ProduseRatinguri.Find(id);

            if (User.Identity.GetUserId() == ratingDeEditat.idUtilizator)
            {
                return(PartialView("EditareRating", ratingDeEditat));
            }
            else
            {
                TempData["mesaj"] = "Nu aveți permisiunea să editați acest rating!";

                return(Redirect("Produs/Afisare/" + ratingDeEditat.idProdus));
            }
        }
Ejemplo n.º 6
0
        public ActionResult Afisare(int id)
        {
            Produs produsDeAfisat = db.Produse.Find(id);

            if (produsDeAfisat.aprobat == true || User.IsInRole("Admin") || User.Identity.GetUserId() == produsDeAfisat.idOwner)
            {
                produsDeAfisat.CategoriiAsociate = categoriiAsociate(produsDeAfisat);

                // vreau sa imi afiseze rating urile proprii primele

                string currentUser = User.Identity.GetUserId();

                var ratinguriProprii = from pr in db.ProduseRatinguri
                                       where pr.idProdus == id
                                       where pr.idUtilizator == currentUser
                                       select pr;

                var ratinguri = from pr in db.ProduseRatinguri
                                where pr.idProdus == id
                                where pr.idUtilizator != currentUser
                                select pr;

                ratinguri = ratinguriProprii.Concat(ratinguri);

                ViewBag.ratinguri = ratinguri;

                // verificare drepturi pentru vizualizat butoane de stergere si editare

                // adminii pot sterge orice produs
                // in schimb, produsul nu poate fi editat decat de owner (nici macar de admin, decat daca ii apartine)
                if (produsDeAfisat.idOwner == User.Identity.GetUserId())
                {
                    ViewBag.accesStergereProdus = true;
                    ViewBag.accesEditareProdus  = true;
                }
                else if (User.IsInRole("Admin"))
                {
                    ViewBag.accesStergereProdus = true;
                }

                // daca valoarea este true, va afisa automat partial view ul de adaugare,
                // este folosit si pentru afisarea erorii la adaugarea unui nou comentariu
                if (TempData["eroareRatingAdaugat"] != null)
                {
                    ViewBag.EroareNouRating = true;

                    ProdusRating ratingEronatAdaugat = TempData["ratingEronatAdaugat"] as ProdusRating;
                    ViewBag.ratingEronatAdaugare = ratingEronatAdaugat;

                    ViewBag.eroare = TempData["eroare"];
                }
                else
                {
                    ViewBag.EroareNouRating = false;
                }

                if (TempData["eroareRatingEditat"] != null)
                {
                    ViewBag.EroareEditareRating = TempData["eroareRatingEditat"];

                    ProdusRating ratingEronatEditat = TempData["ratingEronatEditat"] as ProdusRating;
                    ViewBag.ratingEronatEditare = ratingEronatEditat;

                    ViewBag.eroare = TempData["eroare"];
                }
                else
                {
                    ViewBag.EroareEditareRating = -1; // id de rating care nu exista
                }
                if (TempData["mesaj"] != null)
                {
                    ViewBag.mesaj = TempData["mesaj"];
                }

                ViewBag.aprobare = produsDeAfisat.aprobat;

                return(View(produsDeAfisat));
            }
            else
            {
                TempData["mesaj"] = "Nu aveți dreptul să vedeți acest produs! (Produs neaprobat)";

                return(RedirectToAction("Index"));
            }
        }