コード例 #1
0
        public async Task <ActionResult> _PostReview(Models.VM.CreateReviewVM review)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    TravelerProfile tpcheck = await ProfileManager.LoadUserAndTravelerProfile(User);

                    TravelerProfile tp = await ProfilesController.LoadProfile(review.ID);

                    if (tpcheck.ID == tp.ID)
                    {
                        throw new Exception("Access Violation Post Review! User tried to Review his own profile", new AccessViolationException());
                    }
                    TravelerProfileReviews treviews = tp.Reviews;
                    var             tpRevUpdate     = treviews;
                    TravelerProfile tPoster         = await ProfileManager.LoadUserAndTravelerProfile(User);

                    Review rev = new Review(review, tPoster.ID, tp.TravelerReviewsID);
                    tpRevUpdate.Reviews.Add(rev);
                    using (var db = new ApplicationDbContext())
                    {
                        db.Reviews.Add(rev);

                        await db.SaveChangesAsync();
                    }
                }
                catch (Exception e)
                {
                    NotificationManager.AddException(e);
                    NotificationManager.AddNotification(NotificationType.Error, "Oops, something went wrong!");
                }
            }
            return(RedirectToAction("Details", new { id = review.ID }));
        }
コード例 #2
0
 public TravelerReviewsVM(TravelerProfileReviews reviews)
 {
     ID      = reviews.ID;
     Reviews = new List <ReviewVM>();
     Score   = 0.0f;
     if (reviews.Reviews != null)//kann raus!
     {
         foreach (var rev in reviews.Reviews)
         {
             ReviewVM revM = new ReviewVM(rev);
             Score = Score + rev.Ranking;
             Reviews.Add(revM);
         }
         if (reviews.Reviews.Count > 0)
         {
             Score = Score / Reviews.Count;
         }
     }
 }