/// <summary>
        ///     The WordPressClient holds all connection infos and provides methods to call WordPress APIs.
        /// </summary>
        /// <param name="uri">URI for WordPress API endpoint, e.g. "http://demo.wp-api.org/wp-json/"</param>
        public WordPressClient(string uri)
        {
            if (string.IsNullOrWhiteSpace(uri))
            {
                throw new ArgumentNullException(nameof(uri));
            }

            if (!uri.EndsWith("/"))
            {
                uri += "/";
            }

            _wordPressUri = uri;
            _httpHelper   = new HttpHelper(WordPressUri);
            Posts         = new Posts(ref _httpHelper, defaultPath);
            Comments      = new Comments(ref _httpHelper, defaultPath);
            Tags          = new Tags(ref _httpHelper, defaultPath);
            Users         = new Users(ref _httpHelper, defaultPath);
            Media         = new Media(ref _httpHelper, defaultPath);
            Categories    = new Categories(ref _httpHelper, defaultPath);
            Pages         = new Pages(ref _httpHelper, defaultPath);
            Taxonomies    = new Taxonomies(ref _httpHelper, defaultPath);
            PostTypes     = new PostTypes(ref _httpHelper, defaultPath);
            PostStatuses  = new PostStatuses(ref _httpHelper, defaultPath);
            CustomRequest = new CustomRequest(ref _httpHelper);
        }
Beispiel #2
0
        /// <summary>
        /// The WordPressClient holds all connection infos and provides methods to call WordPress APIs.
        /// </summary>
        /// <param name="httpClient">HttpClient with BaseAddress set which will be used for sending requests to the WordPress API endpoint.</param>
        /// <param name="defaultPath">Relative path to standard API endpoints, defaults to "wp/v2/"</param>
        public WordPressClient(HttpClient httpClient, string defaultPath = DEFAULT_PATH)
        {
            if (httpClient == null)
            {
                throw new ArgumentNullException(nameof(httpClient));
            }
            string uri = httpClient.BaseAddress.ToString();

            if (!uri.EndsWith("/", StringComparison.Ordinal))
            {
                uri += "/";
            }
            WordPressUri = uri;
            _defaultPath = defaultPath;

            _httpHelper   = new HttpHelper(httpClient);
            Posts         = new Posts(ref _httpHelper, _defaultPath);
            Comments      = new Comments(ref _httpHelper, _defaultPath);
            Tags          = new Tags(ref _httpHelper, _defaultPath);
            Users         = new Users(ref _httpHelper, _defaultPath);
            Media         = new Media(ref _httpHelper, _defaultPath);
            Categories    = new Categories(ref _httpHelper, _defaultPath);
            Pages         = new Pages(ref _httpHelper, _defaultPath);
            Taxonomies    = new Taxonomies(ref _httpHelper, _defaultPath);
            PostTypes     = new PostTypes(ref _httpHelper, _defaultPath);
            PostStatuses  = new PostStatuses(ref _httpHelper, _defaultPath);
            CustomRequest = new CustomRequest(ref _httpHelper);
        }
        async public Task UpdatePostStatusAsync(int id, PostStatuses postStatus)
        {
            Post updatedPost = await Context.Post.FindAsync(id);

            if (updatedPost == null)
            {
                throw new ArgumentException($"Invalid Post id ({id}). Unable to find Post entry.");
            }

            updatedPost.PostStatusId = (int)postStatus;
            updatedPost.UpdatedAt    = DateTime.UtcNow;

            await Context.SaveChangesAsync();
        }
Beispiel #4
0
        public bool ChangeStatus(int postId, PostStatuses status)
        {
            Post post = FindById(postId);

            if (post != null)
            {
                post.StatusId = (int)status;
                if (status == PostStatuses.Approved)
                {
                    post.ApprovalDate = DateTime.Now;
                }
                return(Update(post));
            }
            return(false);
        }
Beispiel #5
0
 protected string ToSqlPostStatus(PostStatuses postStatus)
 {
     switch (postStatus)
     {
         case PostStatuses.Published:
             return "publish";
         case PostStatuses.Future:
             return "future";
         case PostStatuses.Draft:
             return "draft";
         case PostStatuses.Pending:
             return "pending";
         case PostStatuses.Private:
             return "private";
         case PostStatuses.Trash:
             return "trash";
         case PostStatuses.AutoDraft:
             return "auto-draft";
         case PostStatuses.Inherit:
             return "inherit";
         default:
             throw new NotImplementedException(string.Format("Post Status: {0}", postStatus));
     }
 }