Пример #1
0
        public CodeReview SubmitCodeReviewPoint(CodeReviewPoint codeReviewPoint)
        {
            DAL.EntityFramework.CodeReviewPoint codeReviewPointCore;

            codeReviewPoint.CodeReviewTagId = codeReviewPoint.CodeReviewTagId == 0
                                                  ? null
                                                  : codeReviewPoint.CodeReviewTagId;
            // existing
            if (codeReviewPoint.PointId > 0)
            {
                codeReviewPointCore = UnitOfWork.CodeReviewRepository
                                      .GetCodeReviewWithAllData(codeReviewPoint.CodeReviewMetadataId)
                                      .CodeReviewTags
                                      .Where(t => !t.IsDeleted)
                                      .SelectMany(t => t.CodeReviewPoints)
                                      .First(p => p.CodeReviewPointId == codeReviewPoint.PointId &&
                                             !p.IsDeleted);

                codeReviewPointCore.CodeReviewTagId     = (int)codeReviewPoint.CodeReviewTagId;
                codeReviewPointCore.PointTitle          = codeReviewPoint.Title;
                codeReviewPointCore.Description         = codeReviewPoint.Description;
                codeReviewPointCore.CodeReviewPointType = codeReviewPoint.Rating;
                codeReviewPointCore.IsDeleted           = codeReviewPoint.IsDeleted;
                codeReviewPointCore.ModifiedOn          = DateTime.Now;
            }
            else
            {
                codeReviewPointCore = new DAL.EntityFramework.CodeReviewPoint
                {
                    PointTitle          = codeReviewPoint.Title,
                    Description         = codeReviewPoint.Description,
                    CodeReviewPointType = codeReviewPoint.Rating,
                    IsDeleted           = codeReviewPoint.IsDeleted,
                    CreatedOn           = DateTime.Now,
                    ModifiedOn          = DateTime.Now
                };

                UnitOfWork.CodeReviewRepository.GetCodeReviewWithAllData(codeReviewPoint.CodeReviewMetadataId)
                .CodeReviewTags
                .First(i => i.CodeReviewTagId == codeReviewPoint.CodeReviewTagId && !i.IsDeleted)
                .CodeReviewPoints.Add(codeReviewPointCore);
            }

            UnitOfWork.Commit();

            //return FetchCodeReviewPreview(codeReviewPoint.CodeReviewMetadataId,false);

            CodeReview updatedCodeReview = CodeReviewConverter.ConvertFromCore(UnitOfWork.CodeReviewRepository
                                                                               .GetCodeReviewWithAllData(codeReviewPoint.CodeReviewMetadataId));

            updatedCodeReview.CodeReviewPreviewHtml = UtilityFunctions.GenerateCodeReviewPreview(updatedCodeReview, false);
            updatedCodeReview.SystemRating          = CalculateCodeReviewRating(updatedCodeReview);

            return(updatedCodeReview);
        }
Пример #2
0
        public CodeReview DiscardTagFromCodeReviewFeedback(int codeReviewId, int codeReviewTagId)
        {
            CodeReviewMetaData crMetaData = UnitOfWork.CodeReviewRepository.GetCodeReviewWithAllData(codeReviewId);

            crMetaData.CodeReviewTags
            .First(x => x.CodeReviewTagId == codeReviewTagId)
            .IsDeleted = true;

            UnitOfWork.Commit();

            CodeReview updatedCodeReviewPoint = CodeReviewConverter.ConvertFromCore(UnitOfWork.CodeReviewRepository
                                                                                    .GetCodeReviewWithAllData(codeReviewId));

            updatedCodeReviewPoint.CodeReviewPreviewHtml = UtilityFunctions.GenerateCodeReviewPreview(updatedCodeReviewPoint, false);
            updatedCodeReviewPoint.SystemRating          = CalculateCodeReviewRating(updatedCodeReviewPoint);
            return(updatedCodeReviewPoint);
        }
Пример #3
0
        /// <summary>
        /// Get view model for user profile page
        /// </summary>
        /// <param name="userId">user id</param>
        /// <param name="loggedInUser"></param>
        /// <returns>instance of User vm</returns>
        public UserProfileVm GetUserProfileVm(int userId, User loggedInUser)
        {
            User requestedUser = userId == loggedInUser.UserId ? loggedInUser : UserDataAccesor.GetUserById(userId);

            CodeReview codeReview = loggedInUser.IsTrainer || loggedInUser.IsManager
                                        ? CodeReviewConverter.ConvertFromCore(UnitOfWork.CodeReviewRepository.GetSavedCodeReviewForTrainee(userId, loggedInUser.UserId))
                                        : null;
            var commonTags = UnitOfWork.CodeReviewRepository
                             .GetCommonlyUsedTags(userId, 5)
                             .Select(skill => new CodeReviewTag
            {
                CodeReviewTagId = 0,
                Skill           = new Skill
                {
                    Name    = skill.Name,
                    SkillId = skill.SkillId
                }
            }).ToList();

            if (codeReview != null)
            {
                codeReview.CodeReviewPreviewHtml = UtilityFunctions.GenerateCodeReviewPreview(codeReview, true);
                codeReview.SystemRating          = new FeedbackBl().CalculateCodeReviewRating(codeReview);
            }

            return(new UserProfileVm
            {
                User = userId == loggedInUser.UserId ? null : requestedUser,
                Skills = requestedUser.IsTrainee ? SkillDataAccesor.GetSkillsByUserId(userId) : null,
                TraineeSynopsis = requestedUser.IsTrainee ? FeedbackDataAccesor.GetTraineeFeedbackSynopsis(requestedUser.UserId) : null,
                Sessions = requestedUser.IsTrainee ? SessionConverter.ConvertListFromCore(UnitOfWork.SessionRepository.GetAllSessionForAttendee(userId)) : null,
                Projects = null,
                Feedbacks = requestedUser.IsTrainee ? FeedbackDataAccesor.GetUserFeedback(userId, 5) : FeedbackDataAccesor.GetFeedbackAddedByUser(userId),
                TrainorSynopsis = requestedUser.IsTrainer || requestedUser.IsManager ? FeedbackDataAccesor.GetTrainorFeedbackSynopsis(requestedUser.UserId) : null,
                AllAssignedCourses = requestedUser.IsTrainee ? LearningPathDataAccessor.GetAllCoursesForTrainee(requestedUser.UserId).OrderByDescending(x => x.PercentageCompleted).ToList() : new List <CourseTrackerDetails>(),
                SavedCodeReview = codeReview,
                CommonTags = commonTags
                             //  SavedCodeReviewData = logedInUser.IsTrainer && (codeReview != null && codeReview.Id > 0) ? UtilityFunctions.GenerateCodeReviewPreview(codeReview, true) : string.Empty
            });
        }
Пример #4
0
        public bool SubmitCodeReviewFeedback(CodeReview codeReview)
        {
            CodeReviewMetaData codeReviewMetaData        = UnitOfWork.CodeReviewRepository.GetCodeReviewWithAllData(codeReview.Id);
            CodeReview         codeReviewDetailsFromCore = CodeReviewConverter.ConvertFromCore(codeReviewMetaData);

            Feedback feedback = new Feedback
            {
                AddedBy = new User {
                    UserId = codeReview.AddedBy.UserId
                },
                AddedFor = new User {
                    UserId = codeReview.AddedFor.UserId
                },
                FeedbackType = new Common.Entity.FeedbackType {
                    FeedbackTypeId = (int)FeedbackType.CodeReview
                },
                FeedbackText = UtilityFunctions.GenerateCodeReviewPreview(codeReviewDetailsFromCore, true),
                Skill        = new Skill(),
                Project      = new Project(),
                Title        = codeReviewDetailsFromCore.Title,
                Rating       = codeReview.Rating
            };

            int feedbackId = FeedbackDataAccesor.AddFeedback(feedback);

            if (!(feedbackId > 0))
            {
                return(false);
            }

            codeReviewMetaData.FeedbackId   = feedback.FeedbackId = feedbackId;
            codeReviewMetaData.SystemRating = CalculateCodeReviewRating(codeReviewDetailsFromCore);

            UnitOfWork.Commit();

            return(new NotificationBl().AddFeedbackNotification(feedback));

            //  return AddFeedback(feedback);
        }
Пример #5
0
 public string FetchCodeReviewPreview(int codeReviewMetaId, bool isFeedback)
 {
     return(UtilityFunctions.GenerateCodeReviewPreview(CodeReviewConverter.ConvertFromCore(UnitOfWork.CodeReviewRepository
                                                                                           .GetCodeReviewWithAllData(codeReviewMetaId)),
                                                       isFeedback));
 }
Пример #6
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);
        }