Пример #1
0
 public List <CodeReview> GetPrevCodeReviewDataForTrainee(int traineeId, int[] ratingFilter, int count)
 {
     return
         (UnitOfWork.CodeReviewRepository
          .GetPrevCodeReviewForTrainee(traineeId, count)
          .Select(cr => new
     {
         cr.CodeReviewMetaDataId,
         cr.Description,
         cr.ProjectName,
         cr.IsDiscarded,
         cr.CreatedOn,
         Feedback = new
         {
             cr.Feedback.FeedbackId,
             cr.Feedback.AddedOn,
             cr.Feedback.FeedbackType,
             cr.Feedback.User,
             cr.Feedback.Rating
         },
         CodeReviewTags = cr.CodeReviewTags
                          .Where(t => !t.IsDeleted)
                          .OrderBy(t => t.SkillId)
     })
          .AsEnumerable()
          .Select(cr => new CodeReview
     {
         Id = cr.CodeReviewMetaDataId,
         Description = cr.Description,
         Title = cr.ProjectName,
         IsDeleted = cr.IsDiscarded.GetValueOrDefault(),
         CreatedOn = cr.CreatedOn,
         Feedback = new Feedback
         {
             FeedbackId = cr.Feedback.FeedbackId,
             AddedOn = cr.Feedback.AddedOn.GetValueOrDefault(),
             FeedbackText = string.Empty,
             FeedbackType = new Common.Entity.FeedbackType {
                 FeedbackTypeId = cr.Feedback.FeedbackType.GetValueOrDefault()
             },
             AddedBy = UserConverter.ConvertFromCore(cr.Feedback.User),
             Rating = cr.Feedback.Rating.GetValueOrDefault()
         },
         Tags = CodeReviewTagConverter.ConvertListFromCore(cr.CodeReviewTags
                                                           .Select(tag =>
         {
             tag.CodeReviewPoints = tag.CodeReviewPoints
                                    .Where(point => point.CodeReviewPointType != 3 &&
                                           ratingFilter.Contains(point.CodeReviewPointType))
                                    .ToList();
             return tag;
         })
                                                           .ToList())
     })
          .Where(cr => cr.Tags.Any() && cr.Tags.Any(tag => tag.ReviewPoints.Any()))
          .ToList());
 }
Пример #2
0
        public CodeReview SubmitCodeReviewMetaData(CodeReview codeReview)
        {
            CodeReviewMetaData crMetaData;

            // existing
            if (codeReview.Id > 0)
            {
                crMetaData = UnitOfWork.CodeReviewRepository.GetCodeReviewWithAllData(codeReview.Id);
                if (crMetaData == null)
                {
                    throw new Exception("No Record Found");
                }

                crMetaData.Description = codeReview.Description;
                crMetaData.IsDiscarded = codeReview.IsDeleted;
                crMetaData.ProjectName = codeReview.Title;

                List <CodeReviewTag> existingTags = CodeReviewTagConverter.ConvertListFromCore(crMetaData.CodeReviewTags.Where(x => !x.IsDeleted).ToList());

                foreach (var tag in codeReview.Tags)
                {
                    if (existingTags.Any(x => x.Skill.SkillId == tag.Skill.SkillId))
                    {
                        continue;
                    }

                    crMetaData.CodeReviewTags.Add(new DAL.EntityFramework.CodeReviewTag
                    {
                        CreatedOn = DateTime.Now,
                        SkillId   = tag.Skill.SkillId
                    });
                }
            }
            else
            {
                crMetaData = new CodeReviewMetaData
                {
                    AddedBy      = codeReview.AddedBy.UserId,
                    AddedFor     = codeReview.AddedFor.UserId,
                    CreatedOn    = DateTime.Now,
                    Description  = codeReview.Description,
                    IsDiscarded  = false,
                    ProjectName  = codeReview.Title,
                    SystemRating = CalculateCodeReviewRating(codeReview)
                };
                foreach (var tag in codeReview.Tags)
                {
                    crMetaData.CodeReviewTags.Add(new DAL.EntityFramework.CodeReviewTag
                    {
                        CreatedOn = DateTime.Now,
                        SkillId   = tag.Skill.SkillId
                    });
                }

                crMetaData.CodeReviewTags.Add(new DAL.EntityFramework.CodeReviewTag
                {
                    CreatedOn = DateTime.Now,
                    SkillId   = null
                });

                UnitOfWork.CodeReviewRepository.Add(crMetaData);
            }

            UnitOfWork.Commit();

            //get new data
            var newCodeReview = CodeReviewConverter.ConvertFromCore(UnitOfWork.CodeReviewRepository.GetCodeReviewWithAllData(crMetaData.CodeReviewMetaDataId));

            newCodeReview.CodeReviewPreviewHtml = FetchCodeReviewPreview(crMetaData.CodeReviewMetaDataId, false);

            newCodeReview.SystemRating = CalculateCodeReviewRating(codeReview);

            return(newCodeReview);
        }