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); }
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); }
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); }
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}"); } }