protected override void InitializeTargetObject() { base.InitializeTargetObject(); var targetObject = APIExtensions.LoadObjectFromAPI(ContextID); if (targetObject == null) { GoToMissingRecordPage(); return; } switch (targetObject.ClassType) { case msDiscussionTopic.CLASS_NAME: targetDiscussionTopic = targetObject.ConvertTo <msDiscussionTopic>(); targetForum = LoadObjectFromAPI <msForum>(targetDiscussionTopic.Forum); targetDiscussionPost = CreateNewObject <msDiscussionPost>(); break; case msDiscussionPost.CLASS_NAME: targetDiscussionPost = targetObject.ConvertTo <msDiscussionPost>(); targetDiscussionTopic = LoadObjectFromAPI <msDiscussionTopic>(targetDiscussionPost.Topic); targetForum = LoadObjectFromAPI <msForum>(targetDiscussionTopic.Forum); editMode = true; break; default: QueueBannerError("Unexpected context type: " + targetObject.ClassType); GoHome(); break; } if (targetForum == null || targetDiscussionTopic == null) { GoToMissingRecordPage(); return; } TargetDiscussionBoard = LoadObjectFromAPI <msDiscussionBoard>(targetForum.DiscussionBoard); if (!string.IsNullOrWhiteSpace(ReplyToId)) { replyToPost = LoadObjectFromAPI <msDiscussionPost>(ReplyToId); } loadSubscription(); }
protected void rptPosts_OnItemCommand(object source, RepeaterCommandEventArgs e) { var discussionPostId = e.CommandArgument.ToString(); msDiscussionPost discussionPost = LoadObjectFromAPI <msDiscussionPost>(discussionPostId); switch (e.CommandName) { case "approve": discussionPost.Status = DiscussionPostStatus.Approved; discussionPost = SaveObject(discussionPost); using (IConciergeAPIService proxy = GetConciegeAPIProxy()) { if (!string.IsNullOrWhiteSpace(discussionPost.PostedBy)) { proxy.SendTransactionalEmail(EmailTemplates.Discussions.DiscussionPostApproval, discussionPost.ID, null); } proxy.SendEmailsToSubscribedEntities(discussionPost.ID); } QueueBannerMessage("The selected post has been approved"); Refresh(); break; case "reject": discussionPost.Status = DiscussionPostStatus.Rejected; discussionPost = SaveObject(discussionPost); if (!string.IsNullOrWhiteSpace(discussionPost.PostedBy)) { using (IConciergeAPIService proxy = GetConciegeAPIProxy()) { proxy.SendTransactionalEmail(EmailTemplates.Discussions.DiscussionPostRejection, discussionPost.ID, null); } } QueueBannerMessage("The selected post has been rejected"); Refresh(); break; } }