1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace InABox.Core
- {
- public enum PostedStatus
- {
- NeverPosted,
- PostFailed,
- RequiresRepost,
- Posted
- }
- /// <summary>
- /// Flags an <see cref="Entity"/> as "Postable"; that is, it can be processed by an <see cref="IPoster{TEntity,TSettings}"/>.
- /// </summary>
- public interface IPostable : IPostableFragment
- {
- /// <summary>
- /// At what time this <see cref="IPostable"/> was processed. Set to <see cref="DateTime.MinValue"/> if not processed yet.
- /// When the <see cref="IPostable"/> is processed, this should be updated, so that we don't process things twice.
- /// </summary>
- DateTime Posted { get; set; }
- PostedStatus PostedStatus { get; set; }
- string PostedNote { get; set; }
- public void Post()
- {
- Posted = DateTime.Now;
- PostedStatus = PostedStatus.Posted;
- PostedNote = "";
- }
- public void FailPost(string note)
- {
- Posted = DateTime.Now;
- PostedStatus = PostedStatus.PostFailed;
- PostedNote = note;
- }
- }
- }
|