public IHttpActionResult PutReviewRating(int id, ReviewRating reviewRating)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != reviewRating.Id)
            {
                return(BadRequest());
            }

            db.Entry(reviewRating).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ReviewRatingExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Esempio n. 2
0
 public IQueryable <ReviewDetails> RestaurantReviewRating(ReviewRating reviewRating)
 {
     try
     {
         List <ReviewDetails>   restaurantRatings = new List <ReviewDetails>();
         IQueryable <TblRating> rating;
         DataAccessLayer.DataEntity.ReviewRating review = new DataAccessLayer.DataEntity.ReviewRating
         {
             Rating         = reviewRating.Rating,
             ReviewComments = reviewRating.ReviewComments,
             RestaurantID   = reviewRating.RestaurantID,
             CustomerId     = reviewRating.CustomerId
         };
         rating = dalReviewRepository.RestaurantReviewRating(review);
         foreach (var item in rating)
         {
             ReviewDetails reviewDetails = new ReviewDetails
             {
                 Rating         = item.Rating,
                 RestaurantId   = item.TblRestaurantId,
                 Review         = item.Comments,
                 CustId         = item.TblCustomerId,
                 RestaurantName = item.TblRestaurant.Name
             };
             restaurantRatings.Add(reviewDetails);
         }
         return(restaurantRatings.AsQueryable());
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Esempio n. 3
0
        public async Task <ActionResult> Put(ReviewRating reviewRating)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // Get the whole review from the database based on the id from the reviewRating parameter
            ProductReview review = await unitOfWork.Repository.Get <ProductReview>(reviewRating.ReviewId);

            if (review != null)
            {
                // Increment the likes or dislikes based on the reviewRating parameter
                review.Likes    += reviewRating.Likes;
                review.Dislikes += reviewRating.Dislikes;

                // Update and save
                unitOfWork.Repository.Update(review);
                await unitOfWork.Save();

                return(Ok());
            }

            return(BadRequest());
        }
Esempio n. 4
0
        public ActionResult PostReview(HomePostReviewVM model)
        {
            var now = DateTime.UtcNow;
            var otp = db.Otps.FirstOrDefault(o => o.CareManagerId == model.CareManagerId &&
                                             o.VerificationCode == model.Otp &&
                                             o.Expires > now);

            if (otp == null)
            {
                ModelState.AddModelError("Otp", "無効なOTPです。");
            }
            if (ModelState.IsValid)
            {
                // Removes Otp
                db.Otps.Remove(otp);
                var review = new ReviewRating()
                {
                    CareManagerId = otp.CareManagerId, Rating = model.Rating
                };
                db.ReviewRatings.Add(review);
                db.SaveChanges();

                // Updates TableStorage
                AddReview(otp.CareManagerId, model.ReviewerType, model.Rating, model.Message);

                // Calculates CareManager.Rating and CareManager.ReviewCount (Cached value to display)
                var careManager = db.CareManagers.Find(otp.CareManagerId);
                var oneYearAgo  = DateTime.UtcNow.AddYears(-1);
                var ratings     = careManager.ReviewRatings.Where(r => r.Created > oneYearAgo);
                var sum         = ratings.Sum(r => r.Rating);
                var count       = ratings.Count();
                careManager.TotalRating  = sum;
                careManager.ReviewsCount = count;
                careManager.Rating       = (double)sum / count;

                // Calculates CareHome.Rating and CareHome.ReviewCount
                var home      = careManager.CareHome;
                var homeSum   = home.CareManagers.Sum(m => m.TotalRating);
                var homeCount = home.CareManagers.Sum(m => m.ReviewsCount);
                home.ReviewCount = homeCount;
                home.Rating      = homeSum / homeCount;

                // Removes old ReviewRatings
                var ratingsToRemove = db.ReviewRatings.Where(r => r.Created <= oneYearAgo).ToList();
                db.ReviewRatings.RemoveRange(ratingsToRemove);

                // Updates SQL
                db.SaveChanges();
                Log(LogType.Others, "ケアマネを評価しました。", new { review.CareManagerId });

                Flash("ケアマネを評価しました。");
                return(RedirectToAction("CareManagerInfo", "Home", new { id = model.CareManagerId }));
            }
            ViewBag.Rating       = new SelectList(Helper.Helper.Ratings, "RatingId", "Label");
            ViewBag.ReviewerType = Helper.EnumHelper <ReviewerType> .GetSelectList(model.ReviewerType);

            return(View(model));
        }
        public IHttpActionResult GetReviewRating(int id)
        {
            ReviewRating reviewRating = db.ReviewRatings.Find(id);

            if (reviewRating == null)
            {
                return(NotFound());
            }

            return(Ok(reviewRating));
        }
Esempio n. 6
0
        public string CreateJsonLDMovie(MovieDetail movieDetail)
        {
            // return string.Empty;

            StructuredData structuredData = new StructuredData();

            List <ItemListElement> itemListElements = new List <ItemListElement>();
            int itemElementCounter = 0;

            //  foreach (var movie in movieDetail)
            {
                Item item = new Item();
                item.name        = movieDetail.Title;
                item.image       = movieDetail.Poster;
                item.dateCreated = movieDetail.Released;

                Director director = new Director();
                director.name = movieDetail.Director;
                item.director = director;

                Review review = new Review();

                ReviewRating reviewRating = new ReviewRating();
                reviewRating.ratingValue = movieDetail.Ratings[0].Value;
                review.reviewRating      = reviewRating;

                Author author = new Author();
                author.name   = movieDetail.Writer;
                review.author = author;

                review.reviewBody = movieDetail.Response;

                AggregateRating aggregateRating = new AggregateRating();
                aggregateRating.bestRating  = movieDetail.Ratings[0].Value;
                aggregateRating.ratingValue = movieDetail.Rated;
                aggregateRating.ratingCount = movieDetail.Ratings.Length.ToString();
                review.aggregateRating      = aggregateRating;

                item.review = review;



                ItemListElement itemListElement = new ItemListElement();
                itemListElement.position = (itemElementCounter++).ToString();
                itemListElement.item     = item;

                itemListElements.Add(itemListElement);
            }
            structuredData.itemListElement = itemListElements;

            string jsonLD = JsonConvert.SerializeObject(structuredData);

            return(jsonLD);
        }
        public IHttpActionResult PostReviewRating(ReviewRating reviewRating)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.ReviewRatings.Add(reviewRating);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = reviewRating.Id }, reviewRating));
        }
        public IActionResult RestaurantReviewRating([FromQuery] ReviewRating reviewRating)
        {
            IQueryable <ReviewDetails> reviews;

            reviews = bal_Repo.RestaurantReviewRating(reviewRating);
            if (reviews != null)
            {
                return(this.Ok(reviews));
            }

            return(this.StatusCode((int)HttpStatusCode.InternalServerError, string.Empty));
        }
        public IHttpActionResult DeleteReviewRating(int id)
        {
            ReviewRating reviewRating = db.ReviewRatings.Find(id);

            if (reviewRating == null)
            {
                return(NotFound());
            }

            db.ReviewRatings.Remove(reviewRating);
            db.SaveChanges();

            return(Ok(reviewRating));
        }
        public async Task <ActionResult> RateReview(ReviewRating reviewRating)
        {
            // Get the whole review from the database based on the id from the reviewRating parameter
            ProductReview review = await unitOfWork.ProductReviews.Get(reviewRating.ReviewId);

            if (review != null)
            {
                // Increment the likes or dislikes based on the reviewRating parameter
                review.Likes    += reviewRating.Likes;
                review.Dislikes += reviewRating.Dislikes;

                // Update and save
                unitOfWork.ProductReviews.Update(review);
                await unitOfWork.Save();

                return(Ok());
            }

            return(BadRequest());
        }
Esempio n. 11
0
 public IQueryable <TblRating> UpdateReviewRating(ReviewRating reviewRating)
 {
     try
     {
         if (dbContext != null)
         {
             var updateRecord = from rating in dbContext.TblRating
                                where rating.TblRestaurantId == reviewRating.RestaurantID
                                select rating;
             foreach (var items in updateRecord)
             {
                 if (items.TblRestaurantId == reviewRating.RestaurantID &&
                     items.TblCustomerId == reviewRating.CustomerId)
                 {
                     items.Rating   = reviewRating.Rating;
                     items.Comments = reviewRating.ReviewComments;
                     items.RecordTimeStampCreated = DateTime.Now;
                 }
             }
             dbContext.SaveChanges();
             return((from rating in dbContext.TblRating
                     join restaurant in dbContext.TblRestaurant on
                     rating.TblRestaurantId equals restaurant.Id
                     where rating.TblRestaurantId == reviewRating.RestaurantID && rating.TblCustomerId == reviewRating.CustomerId
                     select new TblRating
             {
                 Rating = rating.Rating,
                 Comments = rating.Comments,
                 TblRestaurantId = restaurant.Id,
                 TblRestaurant = restaurant,
                 TblCustomerId = rating.TblCustomerId
             }).AsQueryable());
         }
         return(null);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Esempio n. 12
0
 public IQueryable <TblRating> RestaurantReviewRating(ReviewRating reviewRating)
 {
     try
     {
         if (dbContext != null)
         {
             TblRating tblRating = new TblRating
             {
                 Rating                 = reviewRating.Rating,
                 Comments               = reviewRating.ReviewComments,
                 TblRestaurantId        = reviewRating.RestaurantID,
                 TblCustomerId          = reviewRating.CustomerId,
                 RecordTimeStamp        = DateTime.Now,
                 RecordTimeStampCreated = DateTime.Now
             };
             dbContext.Set <TblRating>().Add(tblRating);
             dbContext.SaveChanges();
             return((from rating in dbContext.TblRating
                     join restaurant in dbContext.TblRestaurant on
                     rating.TblRestaurantId equals restaurant.Id
                     where rating.TblRestaurantId == reviewRating.RestaurantID && rating.TblCustomerId == reviewRating.CustomerId
                     select new TblRating
             {
                 Rating = rating.Rating,
                 Comments = rating.Comments,
                 TblRestaurantId = restaurant.Id,
                 TblRestaurant = restaurant,
                 TblCustomerId = rating.TblCustomerId
             }).AsQueryable());
         }
         return(null);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        public async Task <ActionResult> RateReviw([FromBody] ReviewRating rating)
        {
            await _customerReviewService.RateReviewAsync(rating);

            return(Ok());
        }