⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 createeditblogpost.ascx.cs

📁 community server 源码
💻 CS
📖 第 1 页 / 共 2 页
字号:
						DeleteInk(post);
						post.InkID = -1;
					}
				}
			}
			

			post.Subject = PostSubject.Text;
			post.Name = postName.Text;
			post.Excerpt = postExcerpt.Text;
			post.Body = PostBody.Text;
			post.PostType = PostContentType.HTML;
			post.FormattedBody = null;

			post.SetPostMedia(PostMediaType.Video, false);
			if(this.EnableVideos)
			{
				post.VideoDuration = this.VideoDuration.Text;
				post.VideoImageUrl = this.VideoImageUrl.Text;
				post.VideoUrl = this.VideoUrl.Text;
				
				if (this.VideoHeight.Text.Length > 0)
					post.VideoHeight = int.Parse(this.VideoHeight.Text);

				if (this.VideoWidth.Text.Length > 0)
					post.VideoWidth = int.Parse(this.VideoWidth.Text);

				if (post.VideoUrl.Trim().Length > 0)
					post.SetPostMedia(PostMediaType.Video, true);
			}

			PopulateFromYesNo(post);

			post.Categories = Tags.SelectedTags;

			post.ModerationType = (CommentModerationType) Enum.Parse(typeof (CommentModerationType), ModerationDDL.SelectedValue, false);


			post.UserTime = GetDate();
			post.PostDate = UserTime.ConvertToServerTime(post.UserTime);
			post.FeedbackNotificationType = NotificationType.SelectedValue;

			return post;
	
		}

		#endregion 


		private void SaveButton_Click(object sender, EventArgs e)
		{
			SaveAndReturn(false);
		}

		private void SaveEditButton_Click(object sender, EventArgs e)
		{
			if (!Page.IsValid)
				return;

			WeblogPost post = GetPostFromForm();

			int postID = -1;
			BlogPostResults result = SavePost(post,out postID);

			if (result == BlogPostResults.Success)
			{
				Response.Redirect(BlogUrls.Instance().PostEditor(this.CurrentWeblog.SectionID,postID));
			}
			else
			{
				SetError(result);
			}

		}


		private void PostButton_Click(object sender, EventArgs e)
		{
			SaveAndReturn(true);
		}

		private void SaveAndReturn(bool isPublished)
		{
			if (!Page.IsValid)
				return;
	
			WeblogPost post = GetPostFromForm();
			post.IsApproved = isPublished;
	
			int postID = -1;
			BlogPostResults result = SavePost(post,out postID);
	
			if (result == BlogPostResults.Success)
			{
				if(post.BlogPostType == BlogPostType.Post)
					Response.Redirect("postlist.aspx?tab=postlist&sectionid=" + CurrentWeblog.SectionID.ToString());
				else
					Response.Redirect("articlelist.aspx?tab=articlelist&sectionid=" + CurrentWeblog.SectionID.ToString());
			}
			else
			{
				SetError(result);
			}
		}

		private void SetError(BlogPostResults result)
		{
			ResourceControl Message = FindControl("Message") as ResourceControl;
			Message.ResourceName = result == BlogPostResults.DuplicationName ? "Weblog_Exception_DuplicatePostName" : "Weblog_Exception_DuplicatePostBody";
			ErrorPanel.Visible = true;
		}

		private BlogPostResults SavePost(WeblogPost post, out int postID)
		{
		
			BlogPostResults result = BlogPostResults.Success;

			postID = context.PostID;

			if (postID > 0)
			{
				result = WeblogPosts.Update(post);
			}
			else
			{
				
				result = WeblogPosts.Add(post, context.User, out postID);
			}

			if (result == BlogPostResults.Success)
			{
				SaveUpdateAttachment(postID, post);
			}

			return result;

		}

		private void SaveUpdateAttachment(int postID, WeblogPost post)
		{
			if(!Globals.IsNullorEmpty(ServeruploadtempID.Value) && ServeruploadtempID.Value != "Existing")
			{
				WeblogAttachmentSettings fs = WeblogConfiguration.Instance().AttachmentSettings;
				Guid g = new Guid(ServeruploadtempID.Value);
				PostAttachment pa = PostAttachments.ToggleTemporary(g,this.Serverfriendlyfilename.Value, !fs.EnableDataStoreStorage, postID,this.CurrentWeblog.SectionID,context.User.UserID);

                    
				if(fs.EnableFileSystemStorage)
				{
					if(pa != null && !pa.IsRemote)
						fs.SaveAttachmentToDisk(pa,this.CurrentWeblog.SectionID ,postID);
				}
			}
	
			PostCategories.ExpireCategoryCache(post.SectionID);
		}

		[AjaxMethod(IncludeControlValuesWithCallBack=false)]
        public string PreviewPost(string text)
        {
            WeblogPost post = new WeblogPost();
            post.Body = text;
            post.Subject = "";
            post.BlogPostType = this.BlogPostType;
            post.SectionID = this.CurrentWeblog.SectionID;

            WeblogPosts.PreviewFormat(post);
            return post.FormattedBody;
        }

	
		#region Private Helpers

		private void SetDate(DateTime dt)
		{
			DatePicker.SelectedDate = dt;
			int h = dt.Hour;
			if(h == 0)
			{
				h=12;
				AMPM.SelectedIndex = 0;
			}
			else if (h == 12)
			{
				AMPM.SelectedIndex = 1;
			}
			else if(h > 12)
			{
				h = h-12;
				AMPM.SelectedIndex = 1;
			}
			HourPicker.SetSelected(h);
			MinutePicker.SetSelected(dt.Minute);
			//AMPM.Items.FindByValue(dt.ToString("tt",System.Globalization.CultureInfo.InvariantCulture)).Selected = true;
		}

		private DateTime GetDate()
		{
			int minute = MinutePicker.GetSelected;
			int hour = HourPicker.GetSelected;
			if(AMPM.SelectedValue == "AM")
			{
				if(hour == 12)
					hour = 0;
			}
			else
			{
				if(hour != 12)
					hour += 12;
			}

			return new DateTime(DatePicker.SelectedDate.Year,DatePicker.SelectedDate.Month,DatePicker.SelectedDate.Day,hour,minute,0);
		}

		private void PopulateCategories(BlogPostType bpt)
		{
			Tags.AvailableTags = PostCategories.GetCategories(this.CurrentWeblog.SectionID, true, true);
		}

		private bool GetYesNo(string ynID)
		{
			return (FindControl(ynID) as YesNoRadioButtonList).SelectedValue;
		}

		private void PopulateFromYesNo(WeblogPost post)
		{
			bool isPost = this.BlogPostType == BlogPostType.Post;
			post.EnableAllOwnerNotification = GetYesNo("ynNotifyAllOwners");
			post.IsLocked = !GetYesNo("ynEnableReplies");
			//post.IsApproved = GetYesNo("ynPublished");
			post.EnableRatings = GetYesNo("ynEnableRatings");
			post.EnableTrackBacks = GetYesNo("ynEnableTrackBacks");
			post.EnableCrossPosting = GetYesNo("ynEnableCrossPosting");

			if (isPost)
			{
				post.IsAggregated = GetYesNo("ynAggregatePost");
				post.IsCommunityAggregated = GetYesNo("ynCommunity");
				post.SyndicateExcerpt = GetYesNo("ynSyndicateExcerpt");
			}

		}

		private void EnableYesNo(string ynID, bool Selected, bool enable)
		{
			YesNoRadioButtonList yn = FindControl(ynID) as YesNoRadioButtonList;
			if (yn != null)
			{
				yn.SelectedValue = Selected;

				if (!enable)
					FindControl(ynID + "_row").Visible = false;
			}
		}

		private void SetYesNo(BlogPostConfig bc, bool isPublished, bool allowReplies, bool notifyAllOwners, bool rate, bool track, bool hasMultipleOwners, bool crosspost)
		{
			bool isPost = this.BlogPostType == BlogPostType.Post;
			EnableYesNo("ynEnableReplies", allowReplies, true);
			EnableYesNo("ynNotifyAllOwners", notifyAllOwners, hasMultipleOwners);
			//EnableYesNo("ynPublished", isPublished, true);
			EnableYesNo("ynAggregatePost", PostConfigHelper.IsPostConfigSelected(bc, BlogPostConfig.IsAggregated), isPost);
			EnableYesNo("ynCommunity", PostConfigHelper.IsPostConfigSelected(bc, BlogPostConfig.IsCommunityAggregated), isPost);
			EnableYesNo("ynSyndicateExcerpt", PostConfigHelper.IsPostConfigSelected(bc, BlogPostConfig.SyndicateExcerpt), isPost);
			EnableYesNo("ynEnableRatings", rate, true);
			EnableYesNo("ynEnableTrackBacks", track, true);
			EnableYesNo("ynEnableCrossPosting", crosspost, true);

		}

		private int CreateInk()
		{
			InkData newInk = new InkData();
			newInk.ApplicationType = ApplicationType.Weblog;
			newInk.DateUpdated = DateTime.Now;
			newInk.InkString = inkWeb.InkData;
			newInk.SectionID = CurrentWeblog.SectionID;
			newInk.UserID = context.User.UserID;
			return Ink.Add(newInk);
		}

		private void InitializeComponent()
		{
		
		}

		private void DeleteInk(WeblogPost post)
		{
			InkData deletedInk = new InkData();
			deletedInk.InkID = post.InkID;
			deletedInk.SectionID = CurrentWeblog.SectionID;
	
			Ink.Delete(deletedInk);
		}

		#endregion


	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -