Example #1
0
    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();
    }
Example #2
0
    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;
        }
    }