コード例 #1
0
 private static void CreateComments(int count, Entry entry, FeedbackStatusFlag status)
 {
     for (int i = 0; i < count; i++)
     {
         CreateAndUpdateFeedbackWithExactStatus(entry, FeedbackType.Comment, status);
     }
 }
コード例 #2
0
        static FeedbackItem CreateAndUpdateFeedbackWithExactStatus(Entry entry, FeedbackType type,
                                                                   FeedbackStatusFlag status)
        {
            var feedback = new FeedbackItem(type);

            feedback.Title   = UnitTestHelper.GenerateUniqueString();
            feedback.Body    = UnitTestHelper.GenerateUniqueString();
            feedback.EntryId = entry.Id;
            feedback.Author  = "TestAuthor";

            var subtextContext = new Mock <ISubtextContext>();

            subtextContext.Setup(c => c.Cache).Returns(new TestCache());
            subtextContext.SetupBlog(Config.CurrentBlog);
            subtextContext.SetupRepository(ObjectProvider.Instance());
            subtextContext.Setup(c => c.HttpContext.Items).Returns(new Hashtable());
            subtextContext.Setup(c => c.HttpContext).Returns(new HttpContextWrapper(HttpContext.Current));

            var service = new CommentService(subtextContext.Object, null);
            int id      = service.Create(feedback, true /*runFilters*/);

            feedback        = FeedbackItem.Get(id);
            feedback.Status = status;
            FeedbackItem.Update(feedback);

            return(FeedbackItem.Get(id));
        }
コード例 #3
0
ファイル: FeedbackExtensions.cs プロジェクト: ghjigan/Subtext
        /// <summary>
        /// Destroys all non-active emails that meet the status.
        /// </summary>
        /// <param name="feedbackStatus">The feedback.</param>
        public static void Destroy(this ObjectRepository repository, FeedbackStatusFlag feedbackStatus)
        {
            if ((feedbackStatus & FeedbackStatusFlag.Approved) == FeedbackStatusFlag.Approved)
            {
                throw new InvalidOperationException(Resources.InvalidOperation_DestroyActiveComment);
            }

            repository.DestroyFeedback(feedbackStatus);
        }
コード例 #4
0
        /// <summary>
        /// Destroys all non-active emails that meet the status.
        /// </summary>
        /// <param name="feedbackStatus">The feedback.</param>
        public static void Destroy(this ObjectRepository repository, FeedbackStatusFlag feedbackStatus)
        {
            if ((feedbackStatus & FeedbackStatusFlag.Approved) == FeedbackStatusFlag.Approved)
            {
                throw new InvalidOperationException(Resources.InvalidOperation_DestroyActiveComment);
            }

            repository.DestroyFeedback(feedbackStatus);
        }
コード例 #5
0
        /// <summary>
        /// Destroys all non-active emails that meet the status.
        /// </summary>
        /// <param name="feedbackStatus">The feedback.</param>
        public static void Destroy(FeedbackStatusFlag feedbackStatus)
        {
            if ((feedbackStatus & FeedbackStatusFlag.Approved) == FeedbackStatusFlag.Approved)
            {
                throw new InvalidOperationException(Resources.InvalidOperation_DestroyActiveComment);
            }

            ObjectProvider.Instance().DestroyFeedback(feedbackStatus);
        }
コード例 #6
0
        internal static string GetFeedbackItemFilter(FeedbackStatusFlag currentView)
        {
            string cookieName = COOKIES_FEEDBACK_FILTER + currentView;

            if (null != HttpContext.Current.Request.Cookies[cookieName])
            {
                return(HttpContext.Current.Request.Cookies[cookieName].Value);
            }
            return(FeedbackType.None.ToString());
        }
コード例 #7
0
 /// <summary>
 /// Turns the specified status bit on or off depending on the setOn value.
 /// </summary>
 /// <param name="status"></param>
 /// <param name="setOn"></param>
 protected void SetStatus(FeedbackStatusFlag status, bool setOn)
 {
     if (setOn)
     {
         Status = Status | status;
     }
     else
     {
         Status = Status & ~status;
     }
 }
コード例 #8
0
ファイル: FeedbackTests.cs プロジェクト: ayende/Subtext
        public void CanCreateCommentWithStatus(FeedbackStatusFlag status, bool expectedApproved, bool expectedNeedsModeratorApproval, bool expectedDeleted, bool expectedFlaggedAsSpam)
        {
            Entry entry = SetupBlogForCommentsAndCreateEntry();

            FeedbackItem comment = CreateAndUpdateFeedbackWithExactStatus(entry, FeedbackType.Comment, status);

            Assert.IsTrue((comment.Status & status) == status, "Expected the " + status + "bit to be set.");
            Assert.AreEqual(expectedApproved, comment.Approved, "We expected 'Approved' to be " + expectedApproved);
            Assert.AreEqual(expectedNeedsModeratorApproval, comment.NeedsModeratorApproval, "Expected 'NeedsModeratorApproval' to be " + expectedNeedsModeratorApproval);
            Assert.AreEqual(expectedDeleted, comment.Deleted, "Expected 'Deleted' to be " + expectedDeleted);
            Assert.AreEqual(expectedFlaggedAsSpam, ((comment.Status & FeedbackStatusFlag.FlaggedAsSpam) == FeedbackStatusFlag.FlaggedAsSpam), "Expected that this item was ever flagged as spam to be " + expectedFlaggedAsSpam);
        }
コード例 #9
0
        internal static void SetFeedbackItemFilter(string value, FeedbackStatusFlag currentView)
        {
            string cookieName = COOKIES_FEEDBACK_FILTER + currentView;

            if (Enum.IsDefined(typeof(FeedbackType), value))
            {
                CreateCookie(cookieName, value, CookieExpiry);
            }
            else
            {
                log.Warn("Could not set FeedbackType value: " + value);
            }
        }
コード例 #10
0
        public void CanCreateCommentWithStatus(FeedbackStatusFlag status, bool expectedApproved,
                                               bool expectedNeedsModeratorApproval, bool expectedDeleted,
                                               bool expectedFlaggedAsSpam)
        {
            Entry entry = SetupBlogForCommentsAndCreateEntry();

            FeedbackItem comment = CreateAndUpdateFeedbackWithExactStatus(entry, FeedbackType.Comment, status);

            Assert.IsTrue((comment.Status & status) == status, "Expected the " + status + "bit to be set.");
            Assert.AreEqual(expectedApproved, comment.Approved, "We expected 'Approved' to be " + expectedApproved);
            Assert.AreEqual(expectedNeedsModeratorApproval, comment.NeedsModeratorApproval,
                            "Expected 'NeedsModeratorApproval' to be " + expectedNeedsModeratorApproval);
            Assert.AreEqual(expectedDeleted, comment.Deleted, "Expected 'Deleted' to be " + expectedDeleted);
            Assert.AreEqual(expectedFlaggedAsSpam,
                            ((comment.Status & FeedbackStatusFlag.FlaggedAsSpam) == FeedbackStatusFlag.FlaggedAsSpam),
                            "Expected that this item was ever flagged as spam to be " + expectedFlaggedAsSpam);
        }
コード例 #11
0
        protected override void OnLoad(EventArgs e)
        {
            _feedbackStatusFilter = Master.FeedbackStatus;
            _uiState = FeedbackState.GetUiState(_feedbackStatusFilter);
            filterTypeDropDown.SelectedValue = Master.FeedbackType.ToString();

            BindUserInterface();
            if(!IsPostBack)
            {
                if(!Contact.SendContactMessageToFeedback)
                {
                    filterTypeDropDown.Items.RemoveAt(3);
                }

                BindList();
            }
            base.OnLoad(e);
        }
コード例 #12
0
        private void BindList()
        {
            noCommentsMessage.Visible = false;
            if (Request.QueryString[Keys.QRYSTR_PAGEINDEX] != null)
            {
                _pageIndex = Convert.ToInt32(Request.QueryString[Keys.QRYSTR_PAGEINDEX]);
            }

            resultsPager.UrlFormat = "Default.aspx?pg={0}&status=" + _feedbackStatusFilter;
            resultsPager.PageSize  = Preferences.ListingItemCount;
            resultsPager.PageIndex = _pageIndex;

            // Deleted is a special case.  If a feedback has the deleted
            // bit set, it is in the trash no matter what other bits are set.
            FeedbackStatusFlag excludeFilter = _feedbackStatusFilter == FeedbackStatusFlag.Deleted ? FeedbackStatusFlag.None : FeedbackStatusFlag.Deleted;

            IPagedCollection <FeedbackItem> selectionList = Repository.GetPagedFeedback(_pageIndex
                                                                                        , resultsPager.PageSize
                                                                                        , _feedbackStatusFilter
                                                                                        , excludeFilter
                                                                                        , Master.FeedbackType);

            if (selectionList.Count > 0)
            {
                resultsPager.Visible = true;

                resultsPager.ItemCount        = selectionList.MaxItems;
                feedbackRepeater.DataSource   = selectionList;
                feedbackRepeater.ItemCreated += FeedbackItemDataBound;
                feedbackRepeater.DataBind();
            }
            else
            {
                resultsPager.Visible   = false;
                noCommentsMessage.Text = _uiState.NoCommentsHtml;
                feedbackRepeater.Controls.Clear();
                noCommentsMessage.Visible = true;

                btnEmpty.Visible = false;
            }
            Master.BindCounts();
        }
コード例 #13
0
ファイル: FeedbackState.cs プロジェクト: ayende/Subtext
        public static FeedbackState GetUiState(FeedbackStatusFlag status)
        {
            //We've reduced multiple switch statements to one,
            //that's good enough in my book.
            switch (status)
            {
                case FeedbackStatusFlag.Approved:
                    return new ApprovedFeedbackState();

                case FeedbackStatusFlag.NeedsModeration:
                    return new NeedsModerationState();

                case FeedbackStatusFlag.FlaggedAsSpam:
                    return new FlaggedAsSpamState();

                case FeedbackStatusFlag.Deleted:
                    return new DeletedState();

                default:
                    throw new InvalidOperationException("Invalid Feedback Status supplied '" + status + "'");
            }
        }
コード例 #14
0
        protected IList GetFeedEntriesSimple()
        {
            if (String.IsNullOrEmpty(_rssType))
            {
                throw new InvalidOperationException("rssType is empty or null");
            }

            ObjectProvider repository = ObjectProvider.Instance();

            switch (_rssType)
            {
            case "Comment":
                FeedbackStatusFlag flags = FeedbackStatusFlag.None;

                foreach (string filter in _filters)
                {
                    if (Enum.IsDefined(typeof(FeedbackStatusFlag), filter))
                    {
                        flags |= (FeedbackStatusFlag)Enum.Parse(typeof(FeedbackStatusFlag), filter, true);
                    }
                }
                ICollection <FeedbackItem> moderatedFeedback = repository.GetPagedFeedback(0, _count, flags,
                                                                                           FeedbackStatusFlag.None,
                                                                                           FeedbackType.None);
                return((IList)moderatedFeedback);

            case "Referral":
                //TODO: Fix!
                ICollection <Referrer> referrers = repository.GetPagedReferrers(0, _count, NullValue.NullInt32);
                return((IList)referrers);

            case "Log":
                ICollection <LogEntry> entries = LoggingProvider.Instance().GetPagedLogEntries(0, _count);
                return((IList)entries);
            }

            return(null);
        }
コード例 #15
0
        public static FeedbackState GetUiState(FeedbackStatusFlag status)
        {
            //We've reduced multiple switch statements to one,
            //that's good enough in my book.
            switch (status)
            {
            case FeedbackStatusFlag.Approved:
                return(new ApprovedFeedbackState());

            case FeedbackStatusFlag.NeedsModeration:
                return(new NeedsModerationState());

            case FeedbackStatusFlag.FlaggedAsSpam:
                return(new FlaggedAsSpamState());

            case FeedbackStatusFlag.Deleted:
                return(new DeletedState());

            default:
                throw new InvalidOperationException(String.Format(Resources.InvalidOperation_InvalidFeedbackStatus,
                                                                  status));
            }
        }
コード例 #16
0
        public ActionResult UpdateStatus(int id, FeedbackStatusFlag status)
        {
            var comment = CommentService.Get(id);
            string subject = string.Format("Comment by {0}", comment.Author);
            string predicate = null;
            switch(status)
            {
                case FeedbackStatusFlag.Approved:
                    predicate = "has been approved";
                    break;

                case FeedbackStatusFlag.Deleted:
                    predicate = "has been removed";
                    break;

                case FeedbackStatusFlag.FlaggedAsSpam:
                    predicate = "has been flagged as spam";
                    break;
            }
            CommentService.UpdateStatus(comment, status);

            return Json(new {subject, predicate});
        }
コード例 #17
0
ファイル: CommentController.cs プロジェクト: ghjigan/Subtext
        public ActionResult UpdateStatus(int id, FeedbackStatusFlag status)
        {
            var    comment   = CommentService.Get(id);
            string subject   = string.Format("Comment by {0}", comment.Author);
            string predicate = null;

            switch (status)
            {
            case FeedbackStatusFlag.Approved:
                predicate = "has been approved";
                break;

            case FeedbackStatusFlag.Deleted:
                predicate = "has been removed";
                break;

            case FeedbackStatusFlag.FlaggedAsSpam:
                predicate = "has been flagged as spam";
                break;
            }
            CommentService.UpdateStatus(comment, status);

            return(Json(new { subject, predicate }));
        }
コード例 #18
0
 public override void DestroyFeedback(FeedbackStatusFlag status)
 {
     _procedures.DeleteFeedbackByStatus(BlogId, (int)status);
 }
コード例 #19
0
ファイル: FeedbackItem.cs プロジェクト: rsaladrigas/Subtext
 /// <summary>
 /// Checks to see if the specified status bit is set.
 /// </summary>
 /// <param name="status">The status.</param>
 /// <returns></returns>
 protected bool IsStatusSet(FeedbackStatusFlag status)
 {
     return (Status & status) == status;
 }
コード例 #20
0
ファイル: FeedbackTests.cs プロジェクト: rsaladrigas/Subtext
 private static void CreateComments(int count, Entry entry, FeedbackStatusFlag status)
 {
     for (int i = 0; i < count; i++)
     {
         CreateAndUpdateFeedbackWithExactStatus(entry, FeedbackType.Comment, status);
     }
 }
コード例 #21
0
ファイル: CommentService.cs プロジェクト: rsaladrigas/Subtext
 public void UpdateStatus(FeedbackItem comment, FeedbackStatusFlag status)
 {
     comment.Status = status;
     Repository.Update(comment);
 }
コード例 #22
0
ファイル: ObjectProvider.cs プロジェクト: rsaladrigas/Subtext
 /// <summary>
 /// Destroys the feedback with the given status.
 /// </summary>
 /// <param name="status">The status.</param>
 public abstract void DestroyFeedback(FeedbackStatusFlag status);
コード例 #23
0
ファイル: Feedback.Master.cs プロジェクト: ayende/Subtext
 public string ListUrl(int page, FeedbackStatusFlag status, FeedbackType type)
 {
     return "Default.aspx?" + GetCurrentQuery(page, status, type);
 }
コード例 #24
0
ファイル: Feedback.Master.cs プロジェクト: ayende/Subtext
 public string GetCurrentQuery(int page, FeedbackStatusFlag status, FeedbackType type)
 {
     string query = "page={0}&status={1}&type={2}";
     return String.Format(query, page, status, type);
 }
コード例 #25
0
ファイル: ObjectProvider.cs プロジェクト: timheuer/Subtext
 /// <summary>
 /// Destroys the feedback with the given status.
 /// </summary>
 /// <param name="status">The status.</param>
 public abstract void DestroyFeedback(FeedbackStatusFlag status);
コード例 #26
0
ファイル: DbProvider.cs プロジェクト: ayende/Subtext
 /// <summary>
 /// Returns a data reader (<see cref="IDataReader" />) pointing to all the comments 
 /// ordered by ID Descending for the specified page index (0-based) and page size.
 /// </summary>
 /// <param name="pageIndex"></param>
 /// <param name="pageSize"></param>
 /// <param name="excludeStatusMask">A flag for the statuses to exclude.</param>
 /// <param name="status">Status flag for the feedback to return.</param>
 /// <param name="type">Feedback Type (comment, comment api, etc..) for the feedback to return.</param>
 /// <returns></returns>
 public abstract IDataReader GetPagedFeedback(int pageIndex, int pageSize, FeedbackStatusFlag status, FeedbackStatusFlag excludeStatusMask, FeedbackType type);
コード例 #27
0
 public override void DestroyFeedback(FeedbackStatusFlag status)
 {
     DbProvider.Instance().DestroyFeedback(status);
 }
コード例 #28
0
 /// <summary>
 /// Gets the paged feedback.
 /// </summary>
 /// <param name="pageIndex">Index of the page.</param>
 /// <param name="pageSize">Size of the page.</param>
 /// <param name="status">A flag for the status types to return.</param>
 /// <param name="excludeStatusMask">A flag for the statuses to exclude.</param>
 /// <param name="type">The type of feedback to return.</param>
 /// <returns></returns>
 public override IPagedCollection<FeedbackItem> GetPagedFeedback(int pageIndex, int pageSize, FeedbackStatusFlag status, FeedbackStatusFlag excludeStatusMask, FeedbackType type)
 {
     IDataReader reader = DbProvider.Instance().GetPagedFeedback(pageIndex, pageSize, status, excludeStatusMask, type);
     IPagedCollection<FeedbackItem> pec = new PagedCollection<FeedbackItem>();
     while(reader.Read())
     {
         pec.Add(DataHelper.LoadFeedbackItem(reader));
     }
     reader.NextResult();
     pec.MaxItems = DataHelper.GetMaxItems(reader);
     return pec;
 }
コード例 #29
0
 /// <summary>
 /// Checks to see if the specified status bit is set.
 /// </summary>
 /// <param name="status">The status.</param>
 /// <returns></returns>
 protected bool IsStatusSet(FeedbackStatusFlag status)
 {
     return((Status & status) == status);
 }
コード例 #30
0
ファイル: ObjectProvider.cs プロジェクト: timheuer/Subtext
 /// <summary>
 /// Gets the paged feedback.
 /// </summary>
 /// <param name="pageIndex">Index of the page.</param>
 /// <param name="pageSize">Size of the page.</param>
 /// <param name="status">A flag for the status types to return.</param>
 /// <param name="excludeStatusMask">A flag for the statuses to exclude.</param>
 /// <param name="type">The type of feedback to return.</param>
 /// <returns></returns>
 public abstract IPagedCollection <FeedbackItem> GetPagedFeedback(int pageIndex, int pageSize,
                                                                  FeedbackStatusFlag status,
                                                                  FeedbackStatusFlag excludeStatusMask,
                                                                  FeedbackType type);
コード例 #31
0
ファイル: FeedbackItem.cs プロジェクト: ayende/Subtext
        /// <summary>
        /// Destroys all non-active emails that meet the status.
        /// </summary>
        /// <param name="feedbackStatus">The feedback.</param>
        public static void Destroy(FeedbackStatusFlag feedbackStatus)
        {
            if ((feedbackStatus & FeedbackStatusFlag.Approved) == FeedbackStatusFlag.Approved)
                throw new InvalidOperationException("Cannot destroy an active comment.");

            ObjectProvider.Instance().DestroyFeedback(feedbackStatus);
        }
コード例 #32
0
ファイル: Default.aspx.cs プロジェクト: ChrisPelatari/SubText
        protected override void OnLoad(EventArgs e)
        {
            _feedbackStatusFilter = Master.FeedbackStatus;
            _uiState = FeedbackState.GetUiState(_feedbackStatusFilter);
            filterTypeDropDown.SelectedValue = Master.FeedbackType.ToString();

            BindUserInterface();
            if(!IsPostBack)
            {
                if(!Contact.SendContactMessageToFeedback)
                {
                    filterTypeDropDown.Items.RemoveAt(3);
                }

                BindList();
            }
            base.OnLoad(e);
        }
コード例 #33
0
        /// <summary>
        /// Gets the paged feedback.
        /// </summary>
        /// <param name="pageIndex">Index of the page.</param>
        /// <param name="pageSize">Size of the page.</param>
        /// <param name="status">A flag for the status types to return.</param>
        /// <param name="excludeStatusMask">A flag for the statuses to exclude.</param>
        /// <param name="type">The type of feedback to return.</param>
        /// <returns></returns>
        public override IPagedCollection <FeedbackItem> GetPagedFeedback(int pageIndex, int pageSize, FeedbackStatusFlag status, FeedbackStatusFlag excludeStatusMask, FeedbackType type)
        {
            int?feedbackType  = (type == FeedbackType.None ? null : (int?)type);
            int?excludeStatus = (excludeStatusMask == FeedbackStatusFlag.None ? null : (int?)excludeStatusMask);

            using (IDataReader reader = _procedures.GetPageableFeedback(BlogId, pageIndex, pageSize, (int)status, excludeStatus, feedbackType))
            {
                return(reader.ReadPagedCollection(r => reader.ReadFeedbackItem()));
            }
        }
コード例 #34
0
ファイル: Feedback.Master.cs プロジェクト: ayende/Subtext
 public string ListUrl(FeedbackStatusFlag status)
 {
     return ListUrl(PageIndex, status, FeedbackType);
 }
コード例 #35
0
 /// <summary>
 /// Gets the paged feedback.
 /// </summary>
 /// <param name="pageIndex">Index of the page.</param>
 /// <param name="pageSize">Size of the page.</param>
 /// <param name="status">A flag for the status types to return.</param>
 /// <param name="excludeStatusMask">A flag for the statuses to exclude.</param>
 /// <param name="type">The type of feedback to return.</param>
 /// <returns></returns>
 public override IPagedCollection<FeedbackItem> GetPagedFeedback(int pageIndex, int pageSize, FeedbackStatusFlag status, FeedbackStatusFlag excludeStatusMask, FeedbackType type)
 {
     int? feedbackType = (type == FeedbackType.None ? null : (int?)type);
     int? excludeStatus = (excludeStatusMask == FeedbackStatusFlag.None ? null : (int?)excludeStatusMask);
     using (IDataReader reader = _procedures.GetPageableFeedback(BlogId, pageIndex, pageSize, (int)status, excludeStatus, feedbackType))
     {
         return reader.ReadPagedCollection(r => reader.ReadFeedbackItem());
     }
 }
コード例 #36
0
ファイル: Feedback.Master.cs プロジェクト: ayende/Subtext
 //For master page only...
 protected string GetListUrl(FeedbackStatusFlag status)
 {
     return "Default.aspx?status=" + status;
 }
コード例 #37
0
ファイル: Preferences.cs プロジェクト: ayende/Subtext
 internal static string GetFeedbackItemFilter(FeedbackStatusFlag currentView)
 {
     string cookieName = COOKIES_FEEDBACK_FILTER + currentView.ToString();
     if (null != HttpContext.Current.Request.Cookies[cookieName])
     {
         return HttpContext.Current.Request.Cookies[cookieName].Value;
     }
     return FeedbackType.None.ToString();
 }
コード例 #38
0
ファイル: ObjectProvider.cs プロジェクト: rsaladrigas/Subtext
 /// <summary>
 /// Gets the paged feedback.
 /// </summary>
 /// <param name="pageIndex">Index of the page.</param>
 /// <param name="pageSize">Size of the page.</param>
 /// <param name="status">A flag for the status types to return.</param>
 /// <param name="excludeStatusMask">A flag for the statuses to exclude.</param>
 /// <param name="type">The type of feedback to return.</param>
 /// <returns></returns>
 public abstract IPagedCollection<FeedbackItem> GetPagedFeedback(int pageIndex, int pageSize,
                                                                 FeedbackStatusFlag status,
                                                                 FeedbackStatusFlag excludeStatusMask,
                                                                 FeedbackType type);
コード例 #39
0
ファイル: Feedback.Master.cs プロジェクト: ghjigan/Subtext
 public string ListUrl(int page, FeedbackStatusFlag status, FeedbackType type)
 {
     return("Default.aspx?" + GetCurrentQuery(page, status, type));
 }
コード例 #40
0
ファイル: FeedbackTests.cs プロジェクト: rsaladrigas/Subtext
        static FeedbackItem CreateAndUpdateFeedbackWithExactStatus(Entry entry, FeedbackType type,
                                                                   FeedbackStatusFlag status)
        {
            var repository = new DatabaseObjectProvider();
            var feedback = new FeedbackItem(type);
            feedback.Title = UnitTestHelper.GenerateUniqueString();
            feedback.Body = UnitTestHelper.GenerateUniqueString();
            feedback.EntryId = entry.Id;
            feedback.Author = "TestAuthor";

            var subtextContext = new Mock<ISubtextContext>();
            subtextContext.Setup(c => c.Cache).Returns(new TestCache());
            subtextContext.SetupBlog(Config.CurrentBlog);
            subtextContext.SetupRepository(repository);
            subtextContext.Setup(c => c.HttpContext.Items).Returns(new Hashtable());
            subtextContext.Setup(c => c.HttpContext).Returns(new HttpContextWrapper(HttpContext.Current));

            var service = new CommentService(subtextContext.Object, null);
            int id = service.Create(feedback, true/*runFilters*/);

            feedback = repository.Get(id);
            feedback.Status = status;
            repository.Update(feedback);

            return repository.Get(id);
        }
コード例 #41
0
ファイル: Feedback.Master.cs プロジェクト: ghjigan/Subtext
        public string GetCurrentQuery(int page, FeedbackStatusFlag status, FeedbackType type)
        {
            const string query = "page={0}&status={1}&type={2}";

            return(String.Format(query, page, status, type));
        }
コード例 #42
0
ファイル: FeedbackItem.cs プロジェクト: rsaladrigas/Subtext
 /// <summary>
 /// Turns the specified status bit on or off depending on the setOn value.
 /// </summary>
 /// <param name="status"></param>
 /// <param name="setOn"></param>
 protected internal void SetStatus(FeedbackStatusFlag status, bool setOn)
 {
     if (setOn)
     {
         Status = Status | status;
     }
     else
     {
         Status = Status & ~status;
     }
 }
コード例 #43
0
ファイル: Feedback.Master.cs プロジェクト: ghjigan/Subtext
 public string ListUrl(FeedbackStatusFlag status, int pageIndex)
 {
     return(ListUrl(pageIndex, status, FeedbackType));
 }
コード例 #44
0
ファイル: FeedbackItem.cs プロジェクト: ayende/Subtext
 /// <summary>
 /// Returns a pageable collection of comments.
 /// </summary>
 /// <param name="pageIndex"></param>
 /// <param name="pageSize"></param>
 /// <param name="status">A flag for the status types to return.</param>
 /// <param name="excludeStatusMask">A flag for the statuses to exclude.</param>
 /// <param name="type">The type of feedback to return.</param>
 /// <returns></returns>
 public static IPagedCollection<FeedbackItem> GetPagedFeedback(int pageIndex, int pageSize, FeedbackStatusFlag status, FeedbackStatusFlag excludeStatusMask, FeedbackType type)
 {
     return ObjectProvider.Instance().GetPagedFeedback(pageIndex, pageSize, status, excludeStatusMask, type);
 }
コード例 #45
0
ファイル: FeedbackItem.cs プロジェクト: ChrisPelatari/SubText
        /// <summary>
        /// Destroys all non-active emails that meet the status.
        /// </summary>
        /// <param name="feedbackStatus">The feedback.</param>
        public static void Destroy(FeedbackStatusFlag feedbackStatus)
        {
            if((feedbackStatus & FeedbackStatusFlag.Approved) == FeedbackStatusFlag.Approved)
            {
                throw new InvalidOperationException(Resources.InvalidOperation_DestroyActiveComment);
            }

            ObjectProvider.Instance().DestroyFeedback(feedbackStatus);
        }
コード例 #46
0
ファイル: FeedbackItem.cs プロジェクト: ayende/Subtext
 /// <summary>
 /// Turns the specified status bit on or off depending on the setOn value.
 /// </summary>
 /// <param name="status"></param>
 /// <param name="setOn"></param>
 protected void SetStatus(FeedbackStatusFlag status, bool setOn)
 {
     if (setOn)
     {
         this.Status = Status | status;
     }
     else
     {
         this.Status = Status & ~status;
     }
 }
コード例 #47
0
ファイル: CommentService.cs プロジェクト: timheuer/Subtext
 public void UpdateStatus(FeedbackItem comment, FeedbackStatusFlag status)
 {
     comment.Status = status;
     Repository.Update(comment);
 }
コード例 #48
0
 public override void DestroyFeedback(FeedbackStatusFlag status)
 {
     _procedures.DeleteFeedbackByStatus(BlogId, (int)status);
 }
コード例 #49
0
ファイル: Feedback.Master.cs プロジェクト: ghjigan/Subtext
 //For master page only...
 protected string GetListUrl(FeedbackStatusFlag status)
 {
     return("Default.aspx?status=" + status);
 }
コード例 #50
0
ファイル: Preferences.cs プロジェクト: ayende/Subtext
        internal static void SetFeedbackItemFilter(string value, FeedbackStatusFlag currentView)
        {
            string cookieName = COOKIES_FEEDBACK_FILTER + currentView.ToString();

            if (Enum.IsDefined(typeof(FeedbackType), value))
            {
                CreateCookie(cookieName, value, CookieExpiry);
            }
            else
            {
                log.Warn("Could not set FeedbackType value: " + value);
            }
        }
コード例 #51
0
ファイル: FeedbackTests.cs プロジェクト: ayende/Subtext
        static FeedbackItem CreateAndUpdateFeedbackWithExactStatus(Entry entry, FeedbackType type, FeedbackStatusFlag status)
        {
            FeedbackItem feedback = new FeedbackItem(type);
            feedback.Title = UnitTestHelper.GenerateRandomString();
            feedback.Body = UnitTestHelper.GenerateRandomString();
            feedback.EntryId = entry.Id;
            int id = FeedbackItem.Create(feedback, null);

            feedback = FeedbackItem.Get(id);
            feedback.Status = status;
            FeedbackItem.Update(feedback);

            return FeedbackItem.Get(id);
        }