Beispiel #1
0
        public JsonResponse UpdateItemBlog([FromBody] JsonRequest model)
        {
            try
            {
                UpdateView up = model?.Data?.ToString().DeserializeObject <UpdateView>();
                if (up == null || up.Update == null || string.IsNullOrEmpty(up.Num))
                {
                    return(new JsonResponse {
                        Code = 1, Msg = "参数不合法"
                    });
                }
                var opt     = new OpertionUser();
                var content = up.Update[nameof(Blogcontent.Content)].ToString();

                var infodic = AddBaseInfo <Bloginfo>(up.Update, model.Token, false, ref opt);

                var dicwhere = new Dictionary <string, object>()
                {
                    { nameof(Bloginfo.BlogNum), up.Num }
                };
                var dicwhere2 = new Dictionary <string, object>()
                {
                    { nameof(Blogcontent.BloginfoNum), up.Num }
                };


                var res1 = BlogHelper.UpdateByWhere_Bloginfo(infodic, dicwhere, opt);
                var res2 = BlogHelper.UpdateByWhere_Blogcontent(infodic, dicwhere2, opt);

                if (!res1.IsSucceed || !res2.IsSucceed)
                {
                    return(new JsonResponse {
                        Code = 1, Msg = $"编辑失败{res1.SerializeObject()};{res2.SerializeObject()}"
                    });
                }
                Task.Run(() =>
                {
                    CacheHelper.DelCacheItem(ConfigUtil.BlogListCacheKey);
                    CacheHelper.DelCacheItem($"{ConfigUtil.BlogItemCacheKeyPrefix}{up.Num}");
                });
                return(FastResponse("", model.Token, 0, 0, "编辑成功"));
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex, "AdminBlogController/UpdateItemBlog");
                return(new JsonResponse {
                    Code = 1, Msg = "程序视乎开小差" + ex.Message
                });
            }
        }
Beispiel #2
0
    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    protected void SetupControl()
    {
        if (StopProcessing)
        {
            //Do nothing
            rptPostArchive.StopProcessing = true;
        }
        else
        {
            rptPostArchive.ControlContext = ControlContext;

            // Get current page info
            PageInfo currentPage = CMSContext.CurrentPageInfo;

            // Select only publish is depend on view mode
            bool selectOnlyPublished = (PageManager.ViewMode == ViewModeEnum.LiveSite);

            TreeNode blogNode = null;
            // Try to get data from cache
            using (CachedSection <TreeNode> cs = new CachedSection <TreeNode>(ref blogNode, this.CacheMinutes, true, this.CacheItemName, "postarchivenode", currentPage.NodeAliasPath, CMSContext.CurrentSiteName, selectOnlyPublished))
            {
                if (cs.LoadData)
                {
                    blogNode = BlogHelper.GetParentBlog(currentPage.NodeAliasPath, CMSContext.CurrentSiteName, selectOnlyPublished);

                    // Save to cache
                    if (cs.Cached)
                    {
                        cs.CacheDependency = GetCacheDependency();
                        cs.Data            = blogNode;
                    }
                }
            }

            // Set repeater path in accordance to blog node alias path
            if (blogNode != null)
            {
                rptPostArchive.Path = blogNode.NodeAliasPath + "/%";
            }

            // Set repeater properties
            rptPostArchive.TransformationName     = TransformationName;
            rptPostArchive.SelectTopN             = SelectTopN;
            rptPostArchive.HideControlForZeroRows = HideControlForZeroRows;
            rptPostArchive.ZeroRowsText           = ZeroRowsText;
            rptPostArchive.CacheItemName          = CacheItemName;
            rptPostArchive.CacheDependencies      = CacheDependencies;
            rptPostArchive.CacheMinutes           = CacheMinutes;
        }
    }
Beispiel #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="token">The token.</param>
 /// <returns></returns>
 public static SysLoginUser Memberinfo(string token)
 {
     try
     {
         var type    = token.Substring(31, 1).Toint();
         var sysuser = BlogHelper.GetSysLoginUserByToken(token);
         return(sysuser);
     }
     catch (Exception ex)
     {
         LogHelper.WriteLog(ex, "UtilConst/Memberinfo");
         return(null);
     }
 }
    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    protected void SetupControl()
    {
        if (StopProcessing)
        {
            commentView.StopProcessing = true;
            commentView.BlogProperties.StopProcessing = true;
        }
        else
        {
            commentView.ControlContext = ControlContext;

            // Get current page info
            PageInfo currentPage = DocumentContext.CurrentPageInfo;

            bool selectOnlyPublished = (PageManager.ViewMode.IsLiveSite());

            // Get current document
            commentView.PostNode = DocumentContext.CurrentDocument;

            // Get current parent blog
            TreeNode blogNode = BlogHelper.GetParentBlog(currentPage.NodeAliasPath, SiteContext.CurrentSiteName, selectOnlyPublished);

            // If blog node exists, set comment view properties
            if (blogNode != null)
            {
                commentView.BlogProperties.AllowAnonymousComments = ValidationHelper.GetBoolean(blogNode.GetValue("BlogAllowAnonymousComments"), true);
                commentView.BlogProperties.ModerateComments       = ValidationHelper.GetBoolean(blogNode.GetValue("BlogModerateComments"), false);
                commentView.BlogProperties.OpenCommentsFor        = ValidationHelper.GetInteger(blogNode.GetValue("BlogOpenCommentsFor"), BlogProperties.OPEN_COMMENTS_ALWAYS);
                commentView.BlogProperties.SendCommentsToEmail    = ValidationHelper.GetString(blogNode.GetValue("BlogSendCommentsToEmail"), "");
                commentView.BlogProperties.UseCaptcha             = ValidationHelper.GetBoolean(blogNode.GetValue("BlogUseCAPTCHAForComments"), true);
                commentView.BlogProperties.RequireEmails          = ValidationHelper.GetBoolean(blogNode.GetValue("BlogRequireEmails"), false);
                commentView.BlogProperties.EnableSubscriptions    = ValidationHelper.GetBoolean(blogNode.GetValue("BlogEnableSubscriptions"), false);
                commentView.BlogProperties.CheckPermissions       = CheckPermissions;
                commentView.BlogProperties.ShowDeleteButton       = ShowDeleteButton;
                commentView.BlogProperties.ShowEditButton         = ShowEditButton;
                commentView.BlogProperties.EnableUserPictures     = EnableUserPictures;
                commentView.BlogProperties.UserPictureMaxHeight   = UserPictureMaxHeight;
                commentView.BlogProperties.UserPictureMaxWidth    = UserPictureMaxWidth;
                commentView.BlogProperties.EnableTrackbacks       = ValidationHelper.GetBoolean(blogNode.GetValue("BlogEnableTrackbacks"), true);
                commentView.Separator                 = CommentSeparator;
                commentView.ReloadPageAfterAction     = true;
                commentView.AbuseReportOwnerID        = blogNode.NodeOwner;
                commentView.AbuseReportRoles          = AbuseReportRoles;
                commentView.AbuseReportSecurityAccess = AbuseReportAccess;
                commentView.DisplayTrackbacks         = DisplayTrackbacks;
                commentView.TrackbackURLSize          = TrackbackURLSize;
            }
        }
    }
Beispiel #5
0
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        currentSite = CMSContext.CurrentSite;
        currentUser = CMSContext.CurrentUser;

        bool manageBlogs = false;

        // Check 'Manage' permission
        if (currentUser.IsAuthorizedPerResource("cms.blog", "Manage"))
        {
            manageBlogs = true;
        }

        string where = "(NodeSiteID = " + currentSite.SiteID + ")";
        if (!((currentUser.IsGlobalAdministrator) || (manageBlogs)))
        {
            where += " AND " + BlogHelper.GetBlogsWhere(currentUser.UserID, currentUser.UserName, null);
        }

        this.uniSelector.DisplayNameFormat = "{%BlogName%}";
        this.uniSelector.SelectionMode     = SelectionModeEnum.SingleDropDownList;
        this.uniSelector.WhereCondition    = where;
        this.uniSelector.ReturnColumnName  = "BlogID";
        this.uniSelector.ObjectType        = "cms.blog";
        this.uniSelector.ResourcePrefix    = "unisiteselector";
        this.uniSelector.AllowEmpty        = false;
        this.uniSelector.AllowAll          = false;

        if (this.DisplayAllRecord)
        {
            this.uniSelector.SpecialFields = new string[, ] {
                { GetString("general.selectall"), "##ALL##" },
                { GetString("myblogs.comments.selectmyblogs"), "##MYBLOGS##" }
            };
        }
        else
        {
            this.uniSelector.SpecialFields = new string[, ] {
                { GetString("myblogs.comments.selectmyblogs"), "##MYBLOGS##" }
            };
        }

        if (IsInMydesk && !RequestHelper.IsPostBack())
        {
            uniSelector.Value = "##MYBLOGS##";
        }
    }
        public JsonResponse GetAllMenuDataList([FromBody]JsonRequest model)
        {
            try
            {
                var user = UserInfoUtil.UserInfo(model.Token);

                List<Sysmenu> data = BlogHelper.GetListByuserid_Sysmenu(user.Model.KID);
                return FastJson(data, model.Token);
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex, "/Menu/GetAllMenuDataList");
                return new JsonResponse() { Code = 1, Msg = $"请求失败:{ex.Message}" };
            }
        }
Beispiel #7
0
        public ActionResult CommentReply([FromBody] AddCommentReplyRequest request)
        {
            if (string.IsNullOrWhiteSpace(BlogHelper.removeAllTags(request.Content)))
            {
                return(BadRequest(new { error = "内容不能为空或纯图片。" }));
            }
            var reply = _blogUtil.AddPostReply(request.CommentId, User.Identity.Name, _sanitizerService.Sanitize(request.Content));

            TriggerAddReply(reply);
            string expmsg = HttpContext.Items["QuestMsg"] as string;

            return(Json(new AddReplyResponse {
                CommentId = reply.PostId, ReplyId = reply.ReplyId, Message = expmsg
            }));
        }
Beispiel #8
0
        public ActionResult Create(Post post)
        {
            if (ModelState.IsValid)
            {
                post.Url = BlogHelper.GenerateSlug(post.Title);
                //post.Author = post.Author; //User.Identity.Name;
                post.Date = DateTime.Now;

                postService.Create(post);

                return(RedirectToAction("Index"));
            }

            return(View());
        }
Beispiel #9
0
        public async Task <IActionResult> ConfirmDelete(int?id)
        {
            if (id != null)
            {
                Commentary commentary = await _database.Commentaries.Include(c => c.BlogArticle).FirstOrDefaultAsync(c => c.Id == id);

                if (commentary != null)
                {
                    if (BlogHelper.VerifyAuther(commentary?.Username, User))
                    {
                        return(View(commentary));
                    }
                }
            }
            return(NotFound());
        }
Beispiel #10
0
 public IActionResult Create(int?id) //BlogId
 {
     if (id != null)
     {
         Blog blog = _database.Blogs.Include(b => b.User).FirstOrDefault(b => b.Id == id);
         if (blog != null)
         {
             if (BlogHelper.VerifyAuther(blog?.User?.Login, User))
             {
                 ViewBag.BlogId = id;
                 return(View());
             }
         }
     }
     return(NotFound());
 }
        public async Task <IActionResult> Edit(int?id)
        {
            if (id != null)
            {
                Blog blog = await _database.Blogs.Include(b => b.User).FirstOrDefaultAsync(b => b.Id == id);

                if (blog != null)
                {
                    if (BlogHelper.VerifyOperation(blog?.User?.Login, User, DataOperation.Edit))
                    {
                        return(View(blog));
                    }
                }
            }
            return(NotFound());
        }
    /// <summary>
    /// Logs registration activity.
    /// </summary>
    /// <param name="bpsi">Blog subscription info</param>
    /// <param name="nodeId">Docuemnt node ID</param>
    /// <param name="culture">Document culture</param>
    private void LogRegistrationActivity(BlogPostSubscriptionInfo bpsi, int nodeId, string culture)
    {
        if ((CMSContext.ViewMode != ViewModeEnum.LiveSite) || (bpsi == null) || !ActivitySettingsHelper.ActivitiesEnabledForThisUser(CMSContext.CurrentUser))
        {
            return;
        }

        string siteName = CMSContext.CurrentSiteName;

        if (!ActivitySettingsHelper.ActivitiesEnabledAndModuleLoaded(siteName) ||
            !ActivitySettingsHelper.BlogPostSubscriptionEnabled(siteName))
        {
            return;
        }

        if (bpsi.SubscriptionPostDocumentID > 0)
        {
            TreeProvider tree     = new TreeProvider();
            TreeNode     blogPost = DocumentHelper.GetDocument(bpsi.SubscriptionPostDocumentID, tree);

            if ((blogPost != null) && ValidationHelper.GetBoolean(blogPost.GetValue("BlogLogActivity"), false))
            {
                string   blogName = null;
                TreeNode blogNode = BlogHelper.GetParentBlog(bpsi.SubscriptionPostDocumentID, false);
                if (blogNode != null)
                {
                    blogName = blogNode.DocumentName;
                }

                // Update contact info according to subscribtion
                var data = new ActivityData()
                {
                    ContactID    = ModuleCommands.OnlineMarketingGetCurrentContactID(),
                    SiteID       = CMSContext.CurrentSiteID,
                    Type         = PredefinedActivityType.SUBSCRIPTION_BLOG_POST,
                    ItemDetailID = (blogNode != null ? blogNode.NodeID : 0),
                    TitleData    = bpsi.SubscriptionEmail,
                    URL          = URLHelper.CurrentRelativePath,
                    NodeID       = nodeId,
                    Value        = TextHelper.LimitLength(blogName, 250),
                    Culture      = culture,
                    Campaign     = CMSContext.Campaign
                };
                ActivityLogProvider.LogActivity(data);
            }
        }
    }
Beispiel #13
0
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        currentSite = SiteContext.CurrentSite;
        currentUser = MembershipContext.AuthenticatedUser;

        // Check 'Manage' permission
        var manageBlogs = currentUser.IsAuthorizedPerResource("cms.blog", "Manage");

        // There is no sense to display (ALL) in blogs DDL when
        // user does not have manage blogs permission
        if (!manageBlogs)
        {
            DisplayAllRecord = false;
        }

        var condition = new WhereCondition().WhereEquals("NodeSiteID", currentSite.SiteID);

        if (!currentUser.IsGlobalAdministrator && !manageBlogs)
        {
            condition.Where(BlogHelper.GetBlogsWhere(currentUser.UserID, currentUser.UserName, null));
        }

        // Culture priority column to handle duplicities
        var culturePriority = new RowNumberColumn("CulturePriority", "BlogID");

        culturePriority.PartitionBy = "NodeID";

        // Init Blog selector
        uniSelector.DisplayNameFormat    = "{%BlogName%}";
        uniSelector.SelectionMode        = SelectionModeEnum.SingleDropDownList;
        uniSelector.WhereCondition       = condition.ToString(true);
        uniSelector.ReturnColumnName     = "BlogID";
        uniSelector.AdditionalColumns    = culturePriority.ToString();
        uniSelector.ObjectType           = "cms.blog";
        uniSelector.ResourcePrefix       = "unisiteselector";
        uniSelector.AllowEmpty           = false;
        uniSelector.AllowAll             = false;
        uniSelector.OnAfterRetrieveData += uniSelector_OnAfterRetrieveData;

        // Preselect my blogs
        if (IsInMydesk && !RequestHelper.IsPostBack())
        {
            uniSelector.Value = "##MYBLOGS##";
        }
    }
Beispiel #14
0
        public JsonResult Delete(int roleid)
        {
            var result = new Result();

            if (roleid <= 0)
            {
                result.IsSucceed = false;
                result.Message   = "参数错误";
                return(MyJson(result));
            }
            result = BlogHelper.DeleteByWhere_Sysrole(new Dictionary <string, object>()
            {
                { nameof(Sysrole.KID), roleid }
            }, new Service.Models.View.OpertionUser());

            return(MyJson(result));
        }
Beispiel #15
0
    /// <summary>
    /// Logs activity.
    /// </summary>
    /// <param name="bci">Blog comment info</param>
    /// <param name="nodeId">Document node ID</param>
    /// <param name="culture">Document culture</param>
    private void LogCommentActivity(BlogCommentInfo bci, int nodeId, string culture)
    {
        TreeNode blogPost = DocumentHelper.GetDocument(bci.CommentPostDocumentID, new TreeProvider());
        TreeNode blogNode = BlogHelper.GetParentBlog(bci.CommentPostDocumentID, false);
        string   blogName = (blogNode != null) ? blogNode.GetDocumentName() : null;

        var blogComment = new ActivityBlogComment(bci, blogPost, AnalyticsContext.ActivityEnvironmentVariables);

        if (blogComment.Data != null)
        {
            blogComment.Data.TitleData    = blogName;
            blogComment.Data.ItemDetailID = (blogNode != null ? blogNode.NodeID : 0);
            blogComment.Data.NodeID       = nodeId;
            blogComment.Data.Culture      = culture;
            blogComment.Log();
        }
    }
        public JsonResult Delect(int kid)
        {
            var res = new Result()
            {
                IsSucceed = false
            };

            if (kid <= 0)
            {
                res.Message = "参数错误";
                return(MyJson(res));
            }
            res = BlogHelper.DeleteByWhere_Employee(new Dictionary <string, object>()
            {
                { nameof(Employee.KID), kid }
            }, new Service.Models.View.OpertionUser());
            return(MyJson(res));
        }
Beispiel #17
0
    protected DataSet gridBlogs_OnDataReload(string completeWhere, string currentOrder, int currentTopN, string columns, int currentOffset, int currentPageSize, ref int totalRecords)
    {
        totalRecords = -1;
        if (drpBlogs.SelectedValue == "##MYBLOGS##")
        {
            // Get owned blogs
            return(BlogHelper.GetBlogs(SiteContext.CurrentSiteName, currentUser.UserID, null, columns, completeWhere));
        }

        if ((currentUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Admin)) || (readBlogs))
        {
            // Get all blogs
            return(BlogHelper.GetBlogs(SiteContext.CurrentSiteName, 0, null, columns, completeWhere));
        }

        // Get owned or managed blogs
        return(BlogHelper.GetBlogs(SiteContext.CurrentSiteName, currentUser.UserID, currentUser.UserName, columns, completeWhere));
    }
 public JsonResponse GetItemMenuByKid([FromBody]JsonRequest model)
 {
     try
     {
         UpdateView ret = model.Data.ToString().DeserializeObject<UpdateView>();
         if (ret.KID <= 0)
         {
             return FastJson("", model.Token, 1, "kid不能为空");
         }
         Sysmenu data = BlogHelper.GetModelByKID_Sysmenu(ret.KID);
         return FastJson(data, model.Token);
     }
     catch (Exception ex)
     {
         LogHelper.WriteLog(ex, "/Menu/GetItemMenuByKid");
         return new JsonResponse() { Code = 1, Msg = $"请求失败:{ex.Message}" };
     }
 }
Beispiel #19
0
    /// <summary>
    /// Deletes blog post. Called when the "Delete post" button is pressed.
    /// Expects the CreateBlogPost method to be run first.
    /// </summary>
    private bool DeleteBlogPost()
    {
        TreeProvider tree = new TreeProvider(CMSContext.CurrentUser);

        DataSet posts = BlogHelper.GetBlogPosts(CMSContext.CurrentSiteName, "/MyNewBlog", null, true, null, null, true);
        if (!DataHelper.DataSourceIsEmpty(posts))
        {
            // Create object from DataRow
            TreeNode deleteNode = TreeNode.New(posts.Tables[0].Rows[0], "cms.blogpost", tree);

            // Delete the blog post
            DocumentHelper.DeleteDocument(deleteNode, tree, true, true, true);

            return true;
        }

        return false;
    }
Beispiel #20
0
        public JsonResponse AddItemBlog([FromBody] JsonRequest model)
        {
            try
            {
                UpdateView up = model?.Data?.ToString().DeserializeObject <UpdateView>();
                if (up == null || up.Update == null)
                {
                    return(new JsonResponse {
                        Code = 1, Msg = "参数不合法"
                    });
                }
                var opt     = new OpertionUser();
                var content = up.Update[nameof(Blogcontent.Content)].ToString();
                var blognum = Guid.NewGuid().ToString().Replace("-", "");


                var infodic = AddBaseInfo <Bloginfo>(up.Update, model.Token, true, ref opt);
                infodic.Add(nameof(Bloginfo.BlogNum), blognum);
                //var contdic = AddBaseInfo<Blogcontent>(updic, model.Token, true, ref opt);
                infodic.Add(nameof(Blogcontent.BloginfoNum), blognum);

                var res1 = BlogHelper.Add_Bloginfo(infodic, opt);
                //var res2 = BlogHelper.Add_Blogcontent(infodic, opt);
                if (!res1.IsSucceed)
                {
                    return(new JsonResponse {
                        Code = 1, Msg = $"添加失败{res1.SerializeObject()};"
                    });
                }
                Task.Run(() =>
                {
                    CacheHelper.DelCacheItem(ConfigUtil.BlogListCacheKey);
                    CacheHelper.DelCacheItem($"{ConfigUtil.BlogItemCacheKeyPrefix}{up.Num}");
                });
                return(FastResponse("", model.Token, 0, 0, "添加成功"));
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex, "AdminBlogController/AddItemBlog");
                return(new JsonResponse {
                    Code = 1, Msg = "程序视乎开小差" + ex.Message
                });
            }
        }
Beispiel #21
0
        public static SysLoginUser GetSysLoginUser()
        {
            string token = "";

            token = HttpContext.Current.Request.Params?[WebUtil.Tokenkey]?.ToString();
            if (string.IsNullOrEmpty(token))
            {
                token = HttpContext.Current.Request.Cookies?[WebUtil.Tokenkey].Value?.ToString();
            }
            if (string.IsNullOrEmpty(token))
            {
                return(new SysLoginUser {
                    IsSucceed = false
                });
            }
            var sys = BlogHelper.GetSysLoginUserByToken(token);

            return(sys);
        }
        public JsonResult Login(LoginView model)
        {
            if (model == null || string.IsNullOrWhiteSpace(model.UserAccount) || string.IsNullOrWhiteSpace(model.Password))
            {
                return(MyJson(new JsonResponse("", 1, "数据不合法")));
            }
            var srcip = System.Web.HttpContext.Current?.Request?.UserHostAddress;
            var agent = System.Web.HttpContext.Current?.Request?.UserAgent;
            var dns   = System.Web.HttpContext.Current?.Request?.UserHostName;
            var res   = BlogHelper.EmployeePasswordLogin(model.UserAccount, model.Password, srcip, agent, dns);

            if (res.IsSucceed)
            {
                //WebUtil.WriteCookie(WebUtil.Userinfokey, res.SerializeObject(), DateTime.Parse(res.TokenExpiration));
                WebUtil.WriteCookie(WebUtil.Tokenkey, res.Token, DateTime.Parse(res.TokenExpiration));
                return(MyJson(new JsonResponse(res, 0, "登录成功")));
            }
            return(MyJson(new JsonResponse("", 1, "登录失败")));
        }
Beispiel #23
0
        public async Task <IActionResult> ConfirmDelete(int?id)
        {
            if (id != null)
            {
                BlogArticle blogArticle = await _database.BlogArticles.
                                          Include(b => b.Blog).
                                          ThenInclude(b => b.User).
                                          FirstOrDefaultAsync(b => b.Id == id);

                if (blogArticle != null)
                {
                    if (BlogHelper.VerifyOperation(blogArticle?.Blog?.User?.Login, User, DataOperation.Delete))
                    {
                        return(View(blogArticle));
                    }
                }
            }
            return(NotFound());
        }
        public JsonResult StartOrClose(int kid, int states)
        {
            var res = new Result();
            var emp = EmployeeInfo.Model;

            res = BlogHelper.UpdateByWhere_Employee(new Dictionary <string, object>()
            {
                { nameof(Employee.UpdateTime), DateTime.Now },
                { nameof(Employee.CreateUserId), emp.KID },
                { nameof(Employee.CreateUserName), emp.UserName },
                { nameof(Employee.States), states }
            }, new Dictionary <string, object>()
            {
                {
                    nameof(Employee.KID), kid
                }
            }, new Service.Models.View.OpertionUser());
            return(MyJson(res));
        }
        private void LoadList(MicroBlogType listType, bool refresh, string searchTerm)
        {
            string fileName = null;
            ObservableCollection <BlogItemModel> parentList = null;

            switch (listType)
            {
            case MicroBlogType.TechNets:
                fileName   = Constants.TechNetBlogFileName;
                parentList = TechNetBlogs;
                break;
            }
            if (String.IsNullOrEmpty(fileName))
            {
                return;
            }
            // If a cached file exists, bind it first then go update unless we are refreshing
            if (!refresh)
            {
                var itemList = BaseHelper.LoadSetting <List <BlogItemModel> >(fileName);
                if (itemList != null)
                {
                    BindList(parentList, itemList);
                }
            }

            var BlogHelper = new BlogHelper();

            BlogHelper.LoadList(listType, (parentList != null && parentList.Count > 0) ? parentList[0].BlogId : 0, searchTerm);
            BlogHelper.LoadedCompleteEvent += (sender, e) =>
            {
                CheckCount();

                var list = BaseHelper.LoadSetting <List <BlogItemModel> >(fileName);
                if (list == null)
                {
                    //BaseHelper.ShowMessage("网络连接不稳定,请检查网络信号.");
                    return;
                }

                Deployment.Current.Dispatcher.BeginInvoke(() => BindList(parentList, list));
            };
        }
Beispiel #26
0
        public ActionResult Index(string categorytype)
        {
            var list = new List <Bloginfo>();

            var where = new Dictionary <string, object>();
            if (!string.IsNullOrEmpty(categorytype))
            {
                ViewBag.categorytype = categorytype;
                where.Add(nameof(Bloginfo.Type), categorytype);
            }
            where.Add(nameof(Bloginfo.IsDeleted), 0);
            where.Add(nameof(Bloginfo.States), 0);
            var jresult = BlogHelper.GetJsonListPage_Bloginfo(1, 15, "", where);

            if (jresult != null && jresult.code.Toint() == 0)
            {
                list = jresult.data;
            }
            return(View(list));
        }
Beispiel #27
0
    /// <summary>
    /// Reloads comment list.
    /// </summary>
    public void ReloadComments()
    {
        SetContext();

        pnlComment.Visible = AreCommentsOpened;

        if (PostNode != null)
        {
            var currentUser = MembershipContext.AuthenticatedUser;

            // Check permissions for blog
            if (BlogProperties.CheckPermissions)
            {
                if (currentUser.IsAuthorizedPerDocument(PostNode, NodePermissionsEnum.Read) != AuthorizationResultEnum.Allowed)
                {
                    Visible = false;
                    return;
                }
            }

            ctrlCommentEdit.PostDocumentId = PostNode.DocumentID;
            ctrlCommentEdit.PostNodeId     = PostNode.NodeID;
            ctrlCommentEdit.PostCulture    = PostNode.DocumentCulture;

            if (!BlogProperties.StopProcessing)
            {
                // Get parent blog
                bool     selectOnlyPublished = PortalContext.ViewMode.IsLiveSite();
                TreeNode blogNode            = BlogHelper.GetParentBlog(AliasPath, SiteName, selectOnlyPublished);

                // Determine whether user is authorized to manage comments
                isUserAuthorized = BlogHelper.IsUserAuthorizedToManageComments(blogNode);

                // Get all post comments
                rptComments.DataSource = BlogCommentInfoProvider.GetPostComments(PostNode.DocumentID, !isUserAuthorized, isUserAuthorized);
                rptComments.DataBind();
            }
        }

        ReleaseContext();
    }
Beispiel #28
0
    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    protected void SetupControl()
    {
        if (StopProcessing)
        {
            // Do nothing
            rptRecentPosts.StopProcessing = true;
        }
        else
        {
            rptRecentPosts.ControlContext = ControlContext;

            // Get current page info
            PageInfo currentPage = DocumentContext.CurrentPageInfo;

            // If recent posts is empty
            if (PathToRecentPosts == "")
            {
                // Get current parent blog
                TreeNode blogNode = BlogHelper.GetParentBlog(currentPage.NodeAliasPath, SiteContext.CurrentSiteName, false);

                // Set repeater path in accordance to blog node alias path
                if (blogNode != null)
                {
                    rptRecentPosts.Path = blogNode.NodeAliasPath + "/%";
                }
            }
            // If recent posts not empty
            else
            {
                rptRecentPosts.Path = PathToRecentPosts;
            }

            // Set repeater properties
            rptRecentPosts.TransformationName     = TransformationName;
            rptRecentPosts.SelectTopN             = SelectTopN;
            rptRecentPosts.HideControlForZeroRows = HideControlForZeroRows;
            rptRecentPosts.ZeroRowsText           = ZeroRowsText;
            rptRecentPosts.CacheDependencies      = CacheDependencies;
            rptRecentPosts.SiteName = SiteName;
        }
    }
Beispiel #29
0
    protected void Page_Load(object sender, EventArgs e)
    {
        commentId = QueryHelper.GetInteger("commentID", 0);

        // Get comment info
        BlogCommentInfo commentObj = BlogCommentInfoProvider.GetBlogCommentInfo(commentId);

        EditedObject = commentObj;

        if (commentObj != null)
        {
            // Get parent blog
            TreeNode blogNode = BlogHelper.GetParentBlog(commentObj.CommentPostDocumentID, false);

            // Check site ID of edited blog
            if ((blogNode != null) && (blogNode.NodeSiteID != CMSContext.CurrentSiteID))
            {
                EditedObject = null;
            }

            bool isAuthorized = BlogHelper.IsUserAuthorizedToManageComments(blogNode);

            // Check "manage" permission
            if (!isAuthorized)
            {
                RedirectToAccessDenied("cms.blog", "Manage");
            }

            ctrlCommentEdit.CommentId = commentId;
        }

        btnOk.Click          += btnOk_Click;
        btnOk.Text            = GetString("General.OK");
        btnOk.ValidationGroup = ctrlCommentEdit.ValidationGroup;

        ctrlCommentEdit.IsLiveSite           = false;
        ctrlCommentEdit.OnAfterCommentSaved += new OnAfterCommentSavedEventHandler(ctrlCommentEdit_OnAfterCommentSaved);

        CurrentMaster.Title.TitleText  = GetString("Blog.CommentEdit.Title");
        CurrentMaster.Title.TitleImage = GetImageUrl("Objects/Blog_Comment/object.png");
    }
Beispiel #30
0
    /// <summary>
    /// Reloads comment list.
    /// </summary>
    public void ReloadComments()
    {
        this.SetContext();

        this.pnlComment.Visible = this.AreCommentsOpened;

        if (this.PostNode != null)
        {
            CurrentUserInfo currentUser = CMSContext.CurrentUser;

            // Check permissions for blog
            if (this.BlogProperties.CheckPermissions)
            {
                if (currentUser.IsAuthorizedPerDocument(this.PostNode, NodePermissionsEnum.Read) != AuthorizationResultEnum.Allowed)
                {
                    this.Visible = false;
                    return;
                }
            }

            ctrlCommentEdit.PostDocumentId = this.PostNode.DocumentID;
            ctrlCommentEdit.PostNodeId     = this.PostNode.NodeID;
            ctrlCommentEdit.PostCulture    = this.PostNode.DocumentCulture;

            if (!this.BlogProperties.StopProcessing)
            {
                // Get parent blog
                bool     selectOnlyPublished = (CMSContext.ViewMode == ViewModeEnum.LiveSite);
                TreeNode blogNode            = BlogHelper.GetParentBlog(this.AliasPath, this.SiteName, selectOnlyPublished);

                // Determine whether user is authorized to manage comments
                isUserAuthorized = BlogHelper.IsUserAuthorizedToManageComments(blogNode);

                // Get all post comments
                rptComments.DataSource = BlogCommentInfoProvider.GetPostComments(this.PostNode.DocumentID, !isUserAuthorized, isUserAuthorized, DisplayTrackbacks);
                rptComments.DataBind();
            }
        }

        this.ReleaseContext();
    }