Example #1
0
        /// <summary>
        /// Unsubscribes from journal and returns resulting xml object
        /// </summary>
        /// <param name="creator"></param>
        /// <param name="userId"></param>
        /// <param name="threadId"></param>
        /// <param name="forumId"></param>
        /// <returns></returns>
        static public SubscribeResult UnSubscribeFromJournalThread(IDnaDataReaderCreator creator, int userId, int threadId, int forumId)
        {
            SubscribeResult result = new SubscribeResult();
            using (IDnaDataReader reader = creator.CreateDnaDataReader("unsubscribefromjournalthread"))
            {
                reader.AddParameter("userid", userId);
                reader.AddParameter("threadid", threadId);
                reader.AddParameter("forumid", forumId);
                reader.Execute();

                if(reader.HasRows && reader.Read())
                {
                    result.FromThreadId = threadId;
                    result.Journal = 1;
                    int retCode = reader.GetInt32NullAsZero("Result");
                    if (retCode > 0)
                    {
                        result.Failed = retCode;
                        result.Value = reader.GetString("Reason") ?? "";
                    }
                }

            }
            return result;
        }
Example #2
0
        /// <summary>
        /// Unsubscribes from journal and returns resulting xml object
        /// </summary>
        /// <param name="creator"></param>
        /// <param name="userId"></param>
        /// <param name="threadId"></param>
        /// <param name="forumId"></param>
        /// <returns></returns>
        static public SubscribeResult SubscribeToThread(IDnaDataReaderCreator creator, int userId, int threadId, int forumId, bool unSubcribe)
        {
            SubscribeResult result = new SubscribeResult();
            string spToCall = string.Empty;
            if (unSubcribe)
            {
                spToCall = "unsubscribefromthread";
                result.FromThreadId = threadId;
            }
            else
            {
                spToCall = "subscribetothread";
                result.ToThreadId = threadId;
            }

            //get permissions
            bool canRead = false;
            bool canWrite = false;
            ForumHelper helper = new ForumHelper(creator);
            helper.GetThreadPermissions(userId, threadId, ref canRead, ref canWrite);

            if (canRead)
            {
                using (IDnaDataReader reader = creator.CreateDnaDataReader(spToCall))
                {
                    reader.AddParameter("userid", userId);
                    reader.AddParameter("threadid", threadId);
                    reader.AddParameter("forumid", forumId);
                    reader.Execute();
                }
            }
            else
            {
                result.Failed = 5;
                result.Value = "You don't have permission to read this thread";
            }


            return result;
        }