public ActionResult SetRating(int facilityId, int rank) { var rater = User.Identity.GetUserId(); var rate = _context.FacilityRatings.SingleOrDefault(ssf => ssf.SportsFacilityId == facilityId && ssf.RaterId == rater); if (rate != null) { _context.FacilityRatings.Remove(rate); _context.SaveChanges(); } FacilityRating rating = new FacilityRating(); rating.Value = rank; rating.SportsFacilityId = facilityId; rating.SportsFacility = _context.SportsFacilities.Find(facilityId); rating.RaterId = rater; _context.FacilityRatings.Add(rating); _context.SaveChanges(); // Dodaj slike i sportove u model ovde //Vazi Bole, evo dodacu FacilityWithImagesViewModel model = new FacilityWithImagesViewModel { SportsFacility = rating.SportsFacility, IsRated = true, FacilityImages = _context.FacilityImages.Where(m => m.SportsFacilityId == facilityId).ToList() }; var sports = _context.SportSportsFacilities.Where(x => x.SportsFacility_Id == facilityId).ToList(); foreach (var s in sports) { var sp = _context.Sports.Find(s.Sport_Id); model.SportsFacility.TypesOfSports.Add(sp); } model.SportsFacility.Grades = _context.FacilityRatings.Where(x => x.SportsFacilityId == model.SportsFacility.Id).ToList(); double sum = 0; foreach (var r in model.SportsFacility.Grades) { sum += r.Value; } if (model.SportsFacility.Grades.Count != 0) { model.SportsFacility.AverageGrade = sum / (double)model.SportsFacility.Grades.Count; _context.SaveChanges(); } return(View("Details", model)); }
public ActionResult Details(int id) { var facility = _context.SportsFacilities.Find(id); if (facility == null) { return(HttpNotFound()); } var sports = _context.SportSportsFacilities.Where(x => x.SportsFacility_Id == facility.Id).ToList(); foreach (var s in sports) { var sp = _context.Sports.Find(s.Sport_Id); facility.TypesOfSports.Add(sp); } facility.Grades = _context.FacilityRatings.Where(x => x.SportsFacilityId == facility.Id).ToList(); double sum = 0; foreach (var rating in facility.Grades) { sum += rating.Value; } if (facility.Grades.Count != 0) { facility.AverageGrade = sum / (double)facility.Grades.Count; } //_context.SaveChanges(); var images = _context.FacilityImages.Where(m => m.SportsFacilityId == facility.Id).ToList(); var rater = User.Identity.GetUserId(); var r = false; if (_context.FacilityRatings.SingleOrDefault(ssf => ssf.SportsFacilityId == id && ssf.RaterId == rater) != null) { r = true; } var viewModel = new FacilityWithImagesViewModel { SportsFacility = facility, FacilityImages = images, IsRated = r }; return(View(viewModel)); }