public async Task UpdateArticle(string author = null, string title = null, string description = null, bool?publish = null)
        {
            var articleContext = await _getArticleContextWorkflow.GetArticleContext();

            if (articleContext == null)
            {
                return;
            }

            var articleRequest = new ArticleRequest
            {
                BlogId      = articleContext.BlogId,
                Author      = author,
                Title       = title,
                Description = description,
                IsPublished = publish,
            };

            var updateArticleResponse = await _client.PutMessage(articleContext.GetSelfApiLink(), articleRequest);

            if (!updateArticleResponse.IsSuccessStatusCode)
            {
                throw new HttpRequestException($"failed HTTP request: {updateArticleResponse.StatusCode}\n{updateArticleResponse.ReasonPhrase}");
            }

            await _updateArticleContextWorkflow.GetAndUpdateArticleContext(articleContext);
        }
        public async Task <ArticleEntryResponse> GetLatestArticleEntryFromContext()
        {
            var articleContext = await _getArticleContextWorkflow.GetArticleContext();

            if (articleContext == null)
            {
                return(null);
            }

            var getEntryLink = articleContext.GetApiLink(LinkRelValueObject.ENTRY);

            if (string.IsNullOrWhiteSpace(getEntryLink))
            {
                return(null);
            }

            var responseMessage = await _client.GetMessage(getEntryLink);

            if (!responseMessage.IsSuccessStatusCode)
            {
                return(null);
            }

            var entryResponseContents = await responseMessage.Content.ReadAsStringAsync();

            var articleEntry = JsonUtility.Deserialize <ArticleEntryResponse>(entryResponseContents);

            return(articleEntry);
        }
Ejemplo n.º 3
0
        public async Task DeleteMetaTags(params string[] tagsToDelete)
        {
            var articleContext = await _getArticleContextWorkflow.GetArticleContext();

            if (articleContext == null)
            {
                return;
            }

            var tagRequests = tagsToDelete.Select(tag => new MetaTagRequest
            {
                Name = tag
            }).ToArray();

            var metaRequestLink = articleContext.GetApiLink(LinkRelValueObject.META_TAG);
            var response        = await _client.DeleteMessage(metaRequestLink, tagRequests);
        }
Ejemplo n.º 4
0
        public async Task MarkArticleAsDeleted()
        {
            var articleContext = await _getArticleContextWorkflow.GetArticleContext();

            if (articleContext == null)
            {
                return;
            }

            var deleteResponse = await _client.DeleteMessage(articleContext.GetSelfApiLink());

            if (!deleteResponse.IsSuccessStatusCode)
            {
                throw new HttpRequestException($"failed HTTP request: {deleteResponse.StatusCode}\n{deleteResponse.ReasonPhrase}");
            }

            await _updateArticleContextWorkflow.GetAndUpdateArticleContext(articleContext);
        }
Ejemplo n.º 5
0
        public async Task UpdateEntry(string entryFilePath)
        {
            entryFilePath = Path.GetFullPath(entryFilePath);
            Console.WriteLine($"attempting to load entry file: {entryFilePath}");

            if (!File.Exists(entryFilePath))
            {
                throw new FileNotFoundException($"Could not load entry file: {entryFilePath}");
            }

            var articleContext = await _getArticleContextWorkflow.GetArticleContext();

            if (articleContext == null)
            {
                return;
            }

            var entryFileBytes = await File.ReadAllBytesAsync(entryFilePath);

            var entryContentsUtf8 = Encoding.UTF8.GetString(entryFileBytes);

            var entry = new ArticleEntry
            {
                Content = entryContentsUtf8
            };

            var updateEntryResponse = await _client.PostMessage(articleContext.GetApiLink(LinkRelValueObject.ENTRY), entry);

            if (!updateEntryResponse.IsSuccessStatusCode)
            {
                throw new HttpRequestException($"failed HTTP request: {updateEntryResponse.StatusCode}\n{updateEntryResponse.ReasonPhrase}");
            }

            var entryResponseContents = await updateEntryResponse.Content.ReadAsStringAsync();

            entryResponseContents = JsonUtility.Prettify <ArticleEntryResponse>(entryResponseContents);

            Console.WriteLine(entryResponseContents);

            await Task.CompletedTask;
        }
        public async Task UpdateMetaTags(params string[] tags)
        {
            var articleContext = await _getArticleContextWorkflow.GetArticleContext();

            if (articleContext == null)
            {
                return;
            }

            var tagRequests = tags.Select(tag => new MetaTagRequest
            {
                Name = tag
            }).ToArray();

            var metaRequestLink = articleContext.GetApiLink(LinkRelValueObject.META_TAG);
            var response        = await _client.PostMessage(metaRequestLink, tagRequests);

            if (!response.IsSuccessStatusCode)
            {
                throw new HttpRequestException($"failed HTTP request: {response.StatusCode}\n{response.ReasonPhrase}");
            }
        }