/// <summary> /// Get all blog posts on disk. /// </summary> /// <returns></returns> public IEnumerable<BlogPost> ListBlogPostsOnDisk() { var localFileCache = new LocalFileCache(); foreach (var blogFileOnDisk in localFileCache.ListItemsOnDisk()) { yield return BlogPostParsing.ConvertFileToBlogPost(blogFileOnDisk.Key, blogFileOnDisk.Value); } }
public async Task<ActionResult> UpdateCacheFromGitHub() { string postedJson = string.Empty; try { using (var streamReader = new System.IO.StreamReader(Request.InputStream)) { postedJson = streamReader.ReadToEnd(); } GitHubPostedCommit posted = JsonConvert.DeserializeObject<GitHubPostedCommit>(postedJson); IEnumerable<BlogPost> newposts = Enumerable.Empty<BlogPost>(); //try //{ var gh = new Data.GitHub(); newposts = await gh.GetItemsForBranchCommit(posted); var localFileCache = new LocalFileCache(); //delete items if any. foreach (string blogUrlSlug in posted.RemovedPosts) { localFileCache.RemovePost(blogUrlSlug); } //} //catch (Exception) { } try { await SyncAzureIndex(newposts, posted.RemovedPosts); } catch (Exception) { } return new HttpStatusCodeResult(HttpStatusCode.OK); } catch (Exception ex) { return new HttpStatusCodeResult(HttpStatusCode.InternalServerError, ex.Message); } }
public async Task CanProcessPostedWebhook() { GitHubPostedCommit posted = JsonConvert.DeserializeObject<GitHubPostedCommit>(GitHubJsonMessages.GitHubCommitValidMsg); var gh = new Thyme.Web.Data.GitHub(); var newposts = await gh.GetItemsForBranchCommit(posted); LocalFileCache lfc = new LocalFileCache(); foreach (var blogPostSlug in posted.RemovedPosts) { lfc.RemovePost(blogPostSlug); } foreach (BlogPost blogPost in newposts) { lfc.SaveLocalItem(blogPost); } }
public async Task SaveAllItemsFromTree(TreeItem subTree) { var treesClient = new TreesClient(apiConn); var tree = await treesClient.Get(Config.GitHubOwner, Config.GitHubRepo, subTree.Sha); LocalFileCache local = new LocalFileCache(); foreach (var item in tree.Tree.Where(x => local.LocalItemExists(subTree.Path, x.Path) == false)) { var blob = await GetBlobContents(item.Sha); local.SaveLocalItem(new DiskSaveItem { FileContents = Convert.FromBase64String(blob.Content), SubDirectory = subTree.Path, FileName = item.Path }); } }
public void EnsureExistsOnDisk(DiskSaveItem saveItem) { LocalFileCache local = new LocalFileCache(); local.SaveLocalItem(saveItem); }