示例#1
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));
        }
示例#2
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));
        }
示例#3
0
 public Review GetReviewByCategoryAndMinimumRating(ReviewCategory category, int rating)
 {
     if (category == ReviewCategory.Any)
     {
         return(GetReviewByMinimumRating(rating));
     }
     return(_context.Reviews.Where(i => i.ReviewCategory == category && i.Rating > rating)
            .RandomRow());
 }
示例#4
0
 public Review GetReviewByCategory(ReviewCategory category)
 {
     if (category == ReviewCategory.Any)
     {
         return(GetReview());
     }
     return(_context.Reviews.Where(i => i.ReviewCategory == category)
            .RandomRow());
 }
示例#5
0
 private static Report CreateReport(string title, ReviewConfiguration review, ReviewCategory category)
 {
     return(new Report {
         CategoryCount = 1,
         Title = title,
         ReviewName = review.Name,
         Description = category.Description,
         XAxisLabels = review.ReviewRoundsInOrder.Select(round => round.StartDate.ToShortDateString()).ToList()
     });
 }
        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);
        }
示例#7
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()
            });
        }
示例#8
0
        public async Task SeedCategoriesAndLevels()
        {
            var matchLevelRegex = new Regex(@"(?<teamCategory>.*?);(?<category>.*?);(?<shortDescription>.*?);(?<longDescription>.*?);(?<teamCollectionScore>.*?);(?<score>.*?);");
            var levels          = await File.ReadAllLinesAsync($"{_seedFilesDirectory}\\levels.csv");

            foreach (var line in levels.Skip(1))
            {
                var match    = matchLevelRegex.Match(line);
                var category = _dbContext.ReviewCategories.Local.FirstOrDefault(cat => cat.Name == match.Groups["category"].Value);
                if (category == null)
                {
                    _dbContext.ReviewCategories.Add(category = new ReviewCategory {
                        Name = match.Groups["category"].Value,
                    });
                }

                _dbContext.Levels.Add(new Level {
                    Category = category, ShortDescription = match.Groups["shortDescription"].Value, Description = match.Groups["longDescription"].Value, Score = int.Parse(match.Groups["score"].Value), TeamCategory = match.Groups["teamCategory"].Value,
                });
            }
        }
 public CategoryWithWeightage(ReviewCategory rc, double weight)
 {
     CategoryID = rc.CategoryID;
     CategoryName = rc.CategoryName;
     Weightage = weight;
 }
示例#10
0
 public void InsertReviewCategory(ReviewCategory reviewcategory)
 {
     try
     {
         context.ReviewCategories.AddObject(reviewcategory);
         context.SaveChanges();
     }
     catch (Exception ex)
     {
         //Include catch blocks for specific exceptions first,
         //and handle or log the error as appropriate in each.
         //Include a generic catch block like this one last.
         throw ex;
     }
 }
示例#11
0
 public void DeleteReviewCategory(int CategoryID)
 {
     try
     {
         ReviewCategory reviewcategory =new ReviewCategory(){ CategoryID = CategoryID};
         context.ReviewCategories.DeleteObject(reviewcategory);
         context.SaveChanges();
     }
     catch (Exception ex)
     {
         //Include catch blocks for specific exceptions first,
         //and handle or log the error as appropriate in each.
         //Include a generic catch block like this one last.
         throw ex;
     }
 }