Example #1
0
 private void SendMailToPeers(IEnumerable<UserProfile> peers, int reviewId, UserProfile owner)
 {
     foreach (var peer in peers) {
         const string subject = "Provide Review";
         var sender = DefaultContactEmail;
         var receiver = peer.EmailAddress;
         var body = GetMailBodyForStartedReview(peer.UserName, reviewId, owner);
         Send(sender, receiver, subject, body);
     }
 }
Example #2
0
        private static string GetMailBodyForStartedReview(string userName, int reviewId, UserProfile owner)
        {
            return String.Format(
                @"Hi there, {0},

            you have been invited by {2} ({3}) to provide a review.

            This helps improve your team's and your own performance.

            Please visit the following link to provide the review:

            http://www.teamreview.net/Feedback/Provide/{1}

            If you would like to find out more about TeamReview, feel free to visit http://www.teamreview.net/.

            In case you have any questions, just reply to this email and we will get in touch with you as soon as possible.

            Thank you for your time and cheers,

            Andrej - Masterchief Head of Design of TeamReview.net
            ",
                userName, reviewId, owner.UserName, owner.EmailAddress);
        }
Example #3
0
 private static void VerifyIntegrityOfLoggedInUser(string loggedInUserEmail, bool myRatingsOnly, UserProfile peer)
 {
     if (myRatingsOnly && peer.EmailAddress != loggedInUserEmail) {
         throw new ArgumentException("There's a mismatch between the logged in user and the requested peer!",
                                     "loggedInUserEmail");
     }
 }
Example #4
0
 private static ReportDataRow TeamRatingsOverTime(IEnumerable<ReviewRound> reviewRounds, UserProfile ratedUser,
     ReviewCategory category)
 {
     var title = ratedUser != null ? ratedUser.UserName + " (by team)" : "team (by team)";
     return CreateReportDataRow(reviewRounds, ratedUser, category, title, false);
 }
Example #5
0
 private static ReportDataRow OwnRatingsOverTime(IEnumerable<ReviewRound> reviewRounds, UserProfile ratedUser,
     ReviewCategory category)
 {
     var title = string.Format("{0} (by {0})", ratedUser.UserName);
     return CreateReportDataRow(reviewRounds, ratedUser, category, title, true);
 }
Example #6
0
        private static ReportDataRow CreateReportDataRow(IEnumerable<ReviewRound> reviewRounds, UserProfile ratedUser, 
            ReviewCategory category, string title, bool onlyOwnRatings)
        {
            return new ReportDataRow
                       {
                           Title = title,
                           Values = reviewRounds
                               .Select(round => {
                                   var assessments = round.Feedback.SelectMany(feedback => feedback.Assessments)
                                       .Where(ass => ass.ReviewCategory == category)
                                       .Where(ass => onlyOwnRatings ? ass.ReviewedPeer == ratedUser : (ratedUser == null || ass.ReviewedPeer == ratedUser))
                                       .Where(ass => !onlyOwnRatings || ass.Reviewer == ratedUser)
                                       .ToList();

                                   return Convert.ToDecimal(assessments.Any()
                                                                ? assessments.Average(ass => ass.Rating)
                                                                : 0);
                               }).ToList()
                       };
        }
 public void GivenIAmARegisteredUser()
 {
     var user = new UserProfile {EmailAddress = _defaultUserEmailAddress, UserName = DefaultUserName};
     _context.DatabaseContext.UserProfiles.Add(user);
     _reviewInfo.CurrentUser = user;
 }
 private static FeedbackViewModel GetFeedback(ReviewConfiguration review, int rating,
     string categoryName = "Speed", UserProfile reviewedPeer = null)
 {
     ReviewCategory category = review.Categories.First(cat => cat.Name == categoryName);
     var feedback = new FeedbackViewModel
                        {
                            ReviewId = review.Id,
                            CategoriesWithPeersAndRatings =
                                {
                                    new CategoryWithPeersAndRatings
                                        {
                                            Category = new CategoryShowModel {Id = category.Id, Name = category.Name},
                                            PeersWithRatings = reviewedPeer != null
                                                                   ? new List<PeerWithRating>
                                                                         {
                                                                             new PeerWithRating
                                                                                 {
                                                                                     Peer = new PeerShowModel
                                                                                                {
                                                                                                    Id = reviewedPeer.Id,
                                                                                                    UserName = reviewedPeer.UserName,
                                                                                                    EmailAddress = reviewedPeer.EmailAddress
                                                                                                },
                                                                                     Rating = rating
                                                                                 }
                                                                         }
                                                                   : review.Peers.Select(
                                                                       peer => new PeerWithRating
                                                                                   {
                                                                                       Peer = new PeerShowModel
                                                                                                  {
                                                                                                      Id = peer.Id,
                                                                                                      UserName = peer.UserName,
                                                                                                      EmailAddress = peer.EmailAddress
                                                                                                  },
                                                                                       Rating = rating
                                                                                   }).ToList()
                                        }
                                }
                        };
     return feedback;
 }