public JObject rate(string tiskarnaID, string ratingValue, string idUser) { int idTiskarne = Convert.ToInt32(tiskarnaID); int ratingVal = (int)Convert.ToDouble(ratingValue); var rating = new Printajmo.Models.ratings(); var ratingDB = from s in _db.ratings where s.idUser == idUser && s.idTiskarna == idTiskarne select s; if (ratingDB.Any()) { rating = _db.ratings.Find(ratingDB.First().idRating); rating.rating = ratingVal; _db.Entry(rating).State = System.Data.Entity.EntityState.Modified; } else { rating.idTiskarna = idTiskarne; rating.idUser = idUser; rating.rating = ratingVal; _db.ratings.Add(rating); } _db.SaveChanges(); //adding to tiskarne var allRatings = from s in _db.ratings where s.idTiskarna == idTiskarne select s.rating; if (allRatings.Any()) { var sum = 0; foreach (var value in allRatings) { sum += value; } double result = (double)sum / (double)allRatings.Count(); var tiskarna = _db.tiskarne.Find(idTiskarne); tiskarna.rating = (decimal)result; tiskarna.voteNumber = allRatings.Count(); _db.Entry(tiskarna).State = System.Data.Entity.EntityState.Modified; } _db.SaveChanges(); String output = "{\"success\":1}"; JObject json = JObject.Parse(output); return(json); }
public void Rate(int tiskarnaID, int ratingID) { var idUser = User.Identity.GetUserId(); var rating = new Printajmo.Models.ratings(); var ratingDB = from s in _db.ratings where s.idUser == idUser && s.idTiskarna == tiskarnaID select s; if (ratingDB.Any()) { rating = _db.ratings.Find(ratingDB.First().idRating); rating.rating = ratingID; _db.Entry(rating).State = System.Data.Entity.EntityState.Modified; } else { rating.idTiskarna = tiskarnaID; rating.idUser = User.Identity.GetUserId(); rating.rating = ratingID; _db.ratings.Add(rating); } _db.SaveChanges(); //adding to tiskarne var allRatings = from s in _db.ratings where s.idTiskarna == tiskarnaID select s.rating; if (allRatings.Any()) { var sum = 0; foreach (var value in allRatings) { sum += value; } double result = (double)sum / (double)allRatings.Count(); var tiskarna = _db.tiskarne.Find(tiskarnaID); tiskarna.rating = (decimal)result; tiskarna.voteNumber = allRatings.Count(); _db.Entry(tiskarna).State = System.Data.Entity.EntityState.Modified; } _db.SaveChanges(); }