public void GivenAllPeersHaveProvidedTheReview() { var reviewId = ScenarioContext.Current.Get <ReviewConfiguration>().Id; using (var ctx = new DelayedDatabaseContext()) { var reviewConfiguration = ctx.ReviewConfigurations.Find(reviewId); ctx.Entry(reviewConfiguration).Collection(c => c.Categories).Load(); ctx.Entry(reviewConfiguration).Collection(c => c.Peers).Load(); foreach (var reviewer in reviewConfiguration.Peers) { var newFeedback = new ReviewFeedback(); foreach (var reviewCategory in reviewConfiguration.Categories) { foreach (var peer in reviewConfiguration.Peers) { newFeedback.Assessments.Add(new Assessment { ReviewCategory = reviewCategory, Rating = 7, Reviewer = reviewer, ReviewedPeer = peer }); } } newFeedback.Reviewer = reviewer; var reviewRound = new ReviewRound { Active = true, StartDate = DateTime.UtcNow }; reviewRound.Feedback.Add(newFeedback); reviewConfiguration.ReviewRounds.Add(reviewRound); } ctx.SaveChanges(); ScenarioContext.Current.Set(reviewConfiguration); } }
public void SaveFeedback(string userEmail, FeedbackViewModel feedback) { var reviewFeedback = new ReviewFeedback { Reviewer = _databaseContext.UserProfiles.FirstOrDefault(user => user.EmailAddress == userEmail) }; var reviewconfiguration = _databaseContext.ReviewConfigurations.Find(feedback.ReviewId); foreach (var categoriesWithPeersAndRating in feedback.CategoriesWithPeersAndRatings) { foreach (var peersWithRating in categoriesWithPeersAndRating.PeersWithRatings) { reviewFeedback.Assessments.Add( new Assessment { Rating = peersWithRating.Rating, Reviewer = reviewFeedback.Reviewer, ReviewCategory = _databaseContext.ReviewCategories.Find(categoriesWithPeersAndRating.Category.Id), ReviewedPeer = _databaseContext.UserProfiles.Find(peersWithRating.Peer.Id) }); } } reviewconfiguration.GetCurrentFeedback().Add(reviewFeedback); _databaseContext.SaveChanges(); }