public ActionResult Create(string id, int announcement) { ReviewForAnnouncement model = new ReviewForAnnouncement(); model.UserId = id; model.AnnouncementId = announcement; model.Review = new Review(); return(View(model)); }
public ActionResult Create([Bind(Include = "UserId, AnnouncementId, Review")] ReviewForAnnouncement model) { if (ModelState.IsValid) { ApplicationUser Customer = db.Users.Find(model.UserId); Announcement announcement = db.Announcements.Find(model.AnnouncementId); Review review = new Review(); review.Announcement = announcement; review.Submitter = Customer; review.Score = model.Review.Score; review.Reason = model.Review.Reason; List <Review> reviews = db.Reviews.Where(r => r.Announcement.Id == announcement.Id).ToList(); if (reviews.Count != 0) { int sum = 0; reviews.ForEach(r => { sum += r.Score; }); sum += model.Review.Score; announcement.Score = sum / (reviews.Count + 1); } else { announcement.Score = review.Score; } review = db.Reviews.Add(review); db.SaveChanges(); ReviewToUser ReviewToUser = new ReviewToUser(); ReviewToUser.UserId = model.UserId; ReviewToUser.ReviewId = review.Id; db.ReviewsToUsers.Add(ReviewToUser); db.SaveChanges(); return(RedirectToAction("MyReviews/" + model.UserId)); } return(View(model)); }