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);
        }
Beispiel #2
0
        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();
        }