/// <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 }); }
public Course GetCourseWithAllData(int courseId, User currentUser, int userId = 0) { Course courseDetails; if (!currentUser.IsTrainee) { if (userId > 0) { courseDetails = LearningPathDataAccessor.GetCourseWithAllData(courseId, userId); courseDetails.TrackerDetails = LearningPathDataAccessor.GetAllCoursesForTrainee(userId).FirstOrDefault(x => x.Id == courseId); } else { courseDetails = LearningPathDataAccessor.GetCourseWithAllData(courseId); } } else { courseDetails = LearningPathDataAccessor.GetCourseWithAllData(courseId, userId); } if (courseDetails != null) { User userData = UserDataAccesor.GetUserById(courseDetails.AddedBy); courseDetails.AuthorName = userData.FirstName; courseDetails.AuthorMailId = userData.Email; if (currentUser.IsTrainee && !courseDetails.IsStarted) { courseDetails.LoadAlert = true; foreach (CourseSubtopic subtopic in courseDetails.CourseSubtopics) { subtopic.Assignments = new Collection <Assignment>(); subtopic.SubtopicContents = new Collection <SubtopicContent>(); } } } return(courseDetails); }