public async Task <ActionResult> ViewDetails(int IDpage, string username, PageDetailModel model) { using (ZavrsniEFentities db = new ZavrsniEFentities()) { var currentUser = User.Identity.GetUserName(); var user = db.User.FirstOrDefault(u => u.Username.Equals(username)); var current = db.User.FirstOrDefault(u => u.Username.Equals(currentUser)); var reviewExists = (from p in db.PageReview where p.IDpage == IDpage && p.IDreviewer == current.IDuser select p).ToList(); if (reviewExists.Any()) { var selReview = db.PageReview.Find(IDpage, current.IDuser); selReview.Mark = model.Grade; db.Entry(selReview).State = EntityState.Modified; db.SaveChanges(); } if (!reviewExists.Any()) { var selReview = db.PageReview.Create(); selReview.IDpage = IDpage; selReview.IDreviewer = current.IDuser; selReview.Mark = model.Grade; db.PageReview.Add(selReview); db.SaveChanges(); } } return(RedirectToAction("Details", new { IDpage = IDpage, Username = username })); }
public ActionResult Details(int IDpage, string username) { PageDetailModel model = new PageDetailModel(); using (ZavrsniEFentities db = new ZavrsniEFentities()) { List <LocationContent> query = (from c in db.LocationContent join p in db.ContentPage on c.IDcontent equals p.IDcontent where p.IDpage == IDpage select c).Include(c => c.Content).Include(c => c.Location).Include(c => c.City).Include("Content.User").ToList(); model.PageContents = query; var contributors = (from c in db.Contributor join u in db.User on c.IDuser equals u.IDuser where c.IDpage == IDpage && c.IsAuthor == false select u).ToList(); model.Contributors = contributors; var PageInfo = (from p in db.Page where p.IDpage == IDpage select p); model.PageName = PageInfo.First().name; model.IDpage = PageInfo.First().IDpage; var selPage = db.Page.FirstOrDefault(u => u.IDpage.Equals(IDpage)); var pageAuthor = (from p in db.Contributor join u in db.User on p.IDuser equals u.IDuser where p.IDpage == IDpage && p.IsAuthor == true select u); model.PageAuthor = pageAuthor.FirstOrDefault().Username; var views = selPage.PageView; views++; selPage.PageView = views; db.Entry(selPage).State = EntityState.Modified; db.SaveChanges(); var marksExist = (from p in db.PageReview where p.IDpage == IDpage select p).ToList(); if (marksExist.Any()) { var average = (from p in db.PageReview where p.IDpage == IDpage select p).Average(p => p.Mark); if (!Request.IsAuthenticated) { model.AverageGrade = average; return(View(model)); } else { model.Username = username; model.AverageGrade = average; return(View(model)); } } else { double average = 0; if (!Request.IsAuthenticated) { model.AverageGrade = average; return(View(model)); } else { model.Username = username; model.AverageGrade = average; return(View(model)); } } } }