public UserInfoForHomePageModelContainer ReadUserInfoForProfilePage(int userId, UserIdentity userIdentity) { var user = UserBiz.Read(u => u.Id == userId) .Include(u => u.Membership) .Include(u => u.EducationalResumes.Select(x => x.Organization)) .Include(u => u.EducationalResumes.Select(x => x.UniversityField)) .Include(u => u.JobResumes.Select(x => x.Organization)) .Include(u => u.JobResumes.Select(x => x.Job)) .Single(); var profileKeyValues = ProfileBiz.ReadUserProfileValues(userId, ProfileKeyValueType.WebSiteUrl, ProfileKeyValueType.FacebookUrl, ProfileKeyValueType.TwitterUrl, ProfileKeyValueType.LinkedInUrl, ProfileKeyValueType.AboutMe); var userBlog = BlogBiz.ReadSingleOrDefault(b => b.CreatorId == userId); return(new UserInfoForHomePageModelContainer() { UserId = userId, FirstName = user.FirstName, LastName = user.LastName, AboutMe = profileKeyValues.SingleOrDefault(kv => kv.Type == ProfileKeyValueType.AboutMe)?.Value, WebSiteUrl = profileKeyValues.SingleOrDefault(kv => kv.Type == ProfileKeyValueType.WebSiteUrl)?.Value, FacebookUrl = profileKeyValues.SingleOrDefault(kv => kv.Type == ProfileKeyValueType.FacebookUrl)?.Value, TwitterUrl = profileKeyValues.SingleOrDefault(kv => kv.Type == ProfileKeyValueType.TwitterUrl)?.Value, LinkedInUrl = profileKeyValues.SingleOrDefault(kv => kv.Type == ProfileKeyValueType.LinkedInUrl)?.Value, TotalArticles = ArticleBiz.ReadUserPublishedContents(userId, ContentType.Article).Count(), TotalBlogPosts = ArticleBiz.ReadUserPublishedContents(userId, ContentType.BlogPost).Count(), TotalVisits = VisitBiz.ReadUserTodayTotalVisits(userId), LatestArticles = ArticleBiz.ReadUserLatestPublishedArticles(userId, 200).MapTo <ContentInfo2PM>().ToList(), LatestBlogPosts = BlogBiz.ReadUserLatestPosts(userId, 5).MapTo <ContentInfo2PM>().ToList(), EducationalResumes = user.EducationalResumes.OrderByDescending(x => x.EducationGrade).Select(x => x.GetPresentationModel()).ToList(), JobResumes = user.JobResumes.OrderByDescending(x => x.StartYear).Select(x => x.GetPresentationModel()).ToList(), WeblogName = userBlog?.Name, RegistrationDateString = user.Membership.CreateDate.ToPersianDate(), CurrentUserFollowsThisUser = userIdentity != null?FollowBiz.AnyFollow(userIdentity.UserId, userId) : false, Followers = FollowBiz.ReadFollowersCount(userId) }); }