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)); } }
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)); } }
public ActionResult AdaugaRating(int id) { ProdusRating ratingDeAdaugat = new ProdusRating(); ratingDeAdaugat.idProdus = id; return(PartialView("InputRating", ratingDeAdaugat)); }
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)); } }
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)); } }
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")); } }