コード例 #1
0
 public PublicationService()
 {
     UnitOfWork     = new CoreUnitOfWork();
     BlogBiz        = new BlogBiz(UnitOfWork);
     PublicationBiz = new PublicationBiz(UnitOfWork);
     ContentBiz     = new ContentBiz(UnitOfWork);
 }
コード例 #2
0
        public ViewBlogPostModelContainer ReadPostForViewByVisitor(string publicationName, int postId)
        {
            var content = BlogBiz.ReadPostForViewByVisitor(publicationName, postId);

            VisitBiz.IncrementContentVisits(content.Id);
            UnitOfWork.SaveChanges();
            return(new ViewBlogPostModelContainer()
            {
                BlogInfo = BlogBiz.Read(b => b.Id == content.PublicationId).MapTo <BlogInfoPM>().Single(),
                Post = content.GetContentInfoWithTextPM(),
                Tags = content.Tags.Select(tag => tag.GetPresentationModel()).ToList(),
                ArchiveItems = PublicationBiz.ReadPublicationArchivedItemsCalendar(content.PublicationId.Value, ContentType.BlogPost)
                               .Select(item => new ContentArchiveItemPM(item.Item1, item.Item2)),
                Links = BlogBiz.ReadBlogLinks(content.PublicationId.Value)
                        .MapTo <BlogLinkPM>()
                        .ToList(),
                Comments = content.Comments
                           .Where(comment => !comment.IsPrivate)
                           .Select(comment => comment.GetCommentInfoPM()).ToList(),
                LatestPosts = BlogBiz.ReadUserPublishedPostsForViewByVisitor(content.Publication.CreatorId)
                              .Take(10)
                              .MapTo <ContentInfoWithTextPM>()
                              .ToList()
            });
        }
コード例 #3
0
 public IEnumerable <BlogInfoForGenerateLinkPM> ReadBlogs(int pageIndex, int pageSize)
 {
     return(BlogBiz.Read()
            .OrderBy(blog => blog.Title)
            .Skip((pageIndex - 1) * pageSize)
            .Take(pageSize)
            .MapTo <BlogInfoForGenerateLinkPM>()
            .ToList());
 }
コード例 #4
0
        public void UpdateBlogGeneralSettings(int blogId, BlogGeneralSettingsPM generalSettings)
        {
            var blog        = BlogBiz.ReadSingle(b => b.Id == blogId);
            var updatedBlog = generalSettings.GetBlog();

            blog.Title       = updatedBlog.Title;
            blog.Description = updatedBlog.Description;
            blog.Email       = updatedBlog.Email;
            UnitOfWork.SaveChanges();
        }
コード例 #5
0
 public AppStatisticsService()
 {
     UnitOfWork         = new CoreUnitOfWork();
     ArticleBiz         = new ArticleBiz(UnitOfWork);
     BlogBiz            = new BlogBiz(UnitOfWork);
     VisitBiz           = new VisitBiz(UnitOfWork);
     UserBiz            = new UserBiz(UnitOfWork);
     CommentBiz         = new CommentBiz(UnitOfWork);
     MessageBiz         = new MessageBiz(UnitOfWork);
     FeaturedContentBiz = new FeaturedContentBiz(UnitOfWork);
 }
コード例 #6
0
 public BlogService(IPushNotificationProvider pushNotificationProvider)
 {
     UnitOfWork               = new CoreUnitOfWork();
     BlogBiz                  = new BlogBiz(UnitOfWork);
     PublicationBiz           = new PublicationBiz(UnitOfWork);
     TagBiz                   = new TagBiz(UnitOfWork);
     FriendBiz                = new BlogLinkBiz(UnitOfWork);
     ContentBiz               = new ContentBiz(UnitOfWork);
     VisitBiz                 = new VisitBiz(UnitOfWork);
     PushNotificationProvider = pushNotificationProvider;
 }
コード例 #7
0
        public ViewBlogPostModelContainer ReadPostForPreview(string publicationName, int postId)
        {
            var content = BlogBiz.ReadPostForPreview(publicationName, postId);

            VisitBiz.IncrementContentVisits(content.Id);
            UnitOfWork.SaveChanges();
            return(new ViewBlogPostModelContainer()
            {
                BlogInfo = BlogBiz.Read(b => b.Id == content.PublicationId).MapTo <BlogInfoPM>().Single(),
                Post = content.GetContentInfoWithTextPM(),
                Tags = content.Tags.Select(tag => tag.GetPresentationModel()).ToList(),
            });
        }
コード例 #8
0
 public UserProfileService()
 {
     UnitOfWork           = new CoreUnitOfWork();
     UserBiz              = new UserBiz(UnitOfWork);
     MembershipBiz        = new MembershipBiz(UnitOfWork);
     ProfileBiz           = new ProfileBiz(UnitOfWork);
     ArticleBiz           = new ArticleBiz(UnitOfWork);
     BlogBiz              = new BlogBiz(UnitOfWork);
     EducationalResumeBiz = new EducationalResumeBiz(UnitOfWork);
     VisitBiz             = new VisitBiz(UnitOfWork);
     JobResumeBiz         = new JobResumeBiz(UnitOfWork);
     FollowBiz            = new FollowBiz(UnitOfWork);
 }
コード例 #9
0
        public DashboardModelContainer GetUserDashboardData(int userId)
        {
            var today = DateTime.Now.Date;

            return(new DashboardModelContainer()
            {
                PendingComments = CommentBiz.ReadNotConfirmedComments(userId).Take(4).MapTo <CommentInfoPM>().ToList(),
                ArticlesCount = ArticleBiz.ReadUserPublishedContents(userId, ContentType.Article).Count(),
                BlogPostsCount = BlogBiz.ReadUserTotalPublishedPostsCount(userId),
                TodayTotallVisits = VisitBiz.ReadUserTodayTotalVisits(userId),
                LatestMessages = MessageBiz.ReadUserMessages(userId, 4).MapTo <MessagePM>().ToList()
            });
        }
コード例 #10
0
 private BlogHomePageModelContainer ReadBlogHomePageData(Blog blog)
 {
     return(new BlogHomePageModelContainer()
     {
         BlogInfo = blog.GetBlogInfo(),
         ArchiveItems = PublicationBiz.ReadPublicationArchivedItemsCalendar(blog.Id, ContentType.BlogPost)
                        .Select(item => new ContentArchiveItemPM(item.Item1, item.Item2)),
         Links = BlogBiz.ReadBlogLinks(blog.Id)
                 .MapTo <BlogLinkPM>()
                 .ToList(),
         LatestPosts = BlogBiz.ReadUserPublishedPostsForViewByVisitor(blog.CreatorId)
                       .Take(100)
                       .MapTo <ContentInfoWithTextPM>()
                       .ToList()
     });
 }
コード例 #11
0
        public int CreateBlog(UserIdentity UserIdentity, BlogGeneralSettingsPM blogRegisterationPM)
        {
            var blog = blogRegisterationPM.GetBlog();

            blog.CreatorId = UserIdentity.UserId;
            BlogBiz.CreateBlog(blog);
            UnitOfWork.SaveChanges();

            UserIdentity.HasBlog = true;
            UserIdentity.Blogs.Add(new ShortBlogInfoPM()
            {
                Id    = blog.Id,
                Name  = blog.Name,
                Title = blog.Title
            });
            return(blog.Id);
        }
コード例 #12
0
        public ViewBlogArchiveModelContainer ReadArchiveForViewByVisitor(string publicationName, int?year, int?month)
        {
            var blog = BlogBiz.Read(b => b.Name == publicationName)
                       .Include(b => b.Links)
                       .Single();
            var postTitles = year.HasValue && month.HasValue ?
                             BlogBiz.ReadBlogPublishedPosts(blog.Id, year.Value, month.Value) :
                             BlogBiz.ReadBlogPublishedPosts(blog.Id);

            return(new ViewBlogArchiveModelContainer()
            {
                Year = year,
                Month = month,
                BlogInfo = blog.GetBlogInfo(),
                Links = blog.Links.Select(link => link.GetLinkPM()).ToList(),
                PostTitles = postTitles.MapTo <ContentInfo2PM>().ToList(),
                ArchiveItems = PublicationBiz.ReadPublicationArchivedItemsCalendar(blog.Id, ContentType.BlogPost)
                               .Select(item => new ContentArchiveItemPM(item.Item1, item.Item2)),
            });
        }
コード例 #13
0
        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)
            });
        }
コード例 #14
0
 public BlogGeneralSettingsPM ReadBlogGeneralSettings(int blogId)
 {
     return(BlogBiz.ReadSingle(b => b.Id == blogId).GetGeneralSettingsPM());
 }
コード例 #15
0
 public SetupBlogService()
 {
     UnitOfWork = new CoreUnitOfWork();
     BlogBiz    = new BlogBiz(UnitOfWork);
     TagBiz     = new TagBiz(UnitOfWork);
 }
コード例 #16
0
 public int ReadTotallBlogsCount()
 {
     return(BlogBiz.ReadTotallBlogsCount());
 }
コード例 #17
0
 public DataSourceResult ReadUserPosts(UserIdentity user, DataSourceRequest request)
 {
     return(BlogBiz.ReadUserLatestPosts(user.UserId)
            .MapTo <ContentInfo5PM>()
            .ToDataSourceResult(request));
 }