/// <summary> /// OnAction for Facebook post object type. /// </summary> private void OnAction_Facebook(string actionName, object actionArgument) { switch (actionName) { case "delete": try { FacebookPostInfoProvider.DeleteFacebookPostInfo(ValidationHelper.GetInteger(actionArgument, 0)); } catch (Exception ex) { EventLogProvider.LogWarning("Social marketing - Facebook post", "DELETEPOST", ex, SiteContext.CurrentSiteID, "Facebook post could not be deleted."); Control.ShowError(Control.GetString("sm.facebook.posts.msg.deleteerror")); } break; } }
/// <summary> /// Form OnBeforeDataRetrieval. /// </summary> private void Form_OnBeforeDataRetrieval(object sender, EventArgs eventArgs) { if (!HasUserModifyPermission) { return; } if (chkPostToFacebook.Checked) { if ((PostInfo == null) || PostInfo.IsEditable) { // Post does not exist or can be modified PostInfo = SetControlDataIntoPost(PostInfo); FacebookPostInfoProvider.SetFacebookPostInfo(PostInfo); } else if (!FormDataEqualsPostInfo(PostInfo)) { mPublishedWhileEditing = true; } } else { // Checkbox post to Facebook is not checked if (PostInfo != null) { if (PostInfo.IsEditable) { // Existing post has to be deleted FacebookPostInfoProvider.DeleteFacebookPostInfo(PostInfo); PostInfo = null; InitializeControls(); } else { mPublishedWhileEditing = true; } } else if (mBackCompatibilityValue.HasValue) { // Form has to be cleaned up from old value mBackCompatibilityValue = null; InitializeControls(); } } }
/// <summary> /// Deletes Facebook post. Called when the "Delete post" button is pressed. /// Expects the CreateFacebookPost method to be run first. /// </summary> private bool DeleteFacebookPosts() { // Get an page to which the post is tied FacebookAccountInfo page = FacebookAccountInfoProvider.GetFacebookAccountInfo("MyNewPage", SiteContext.CurrentSiteID); if (page == null) { throw new Exception("[FacebookApiExamples.DeleteFacebookPosts]: Page 'My new page' wasn't found."); } // Get the Facebook post from DB ObjectQuery <FacebookPostInfo> post = FacebookPostInfoProvider.GetFacebookPostInfosByAccountId(page.FacebookAccountID); // Delete the Facebook post from CMS and from Facebook foreach (FacebookPostInfo deletePost in post) { FacebookPostInfoProvider.DeleteFacebookPostInfo(deletePost); } return(post.Count != 0); }