/// <summary> /// Parse method. Reads given repo. Finds all md files. Parses them to jsons. Saves to given File Share. /// </summary> /// <param name="appName">application name</param> /// <param name="owner">GitHub repo owner</param> /// <param name="repoName">GitHub repo name</param> /// <param name="branch">GitHub repo branch</param> /// <param name="storageAccConnectionString">data connection string to storage where jsons will be saved.</param> /// <param name="fileShareName">file Share name in storage</param> /// <returns>true if success. false if failed</returns> public static async Task <bool> Parse(string appName, string owner, string repoName, string branch, string storageAccConnectionString, string fileShareName) { var github = new GitHubClient(new ProductHeaderValue(appName)); var mdFiles = new List <Tuple <string, string> >(); Console.WriteLine("Finding all markdown files in repo..."); mdFiles.AddRange(await GetMdFiles(github, owner, repoName, branch, string.Empty)); var jsonList = new List <Tuple <string, string> >(); Console.WriteLine($"{mdFiles.Count} items found. Parsing..."); try { foreach (var mdFile in mdFiles) { var mdParser = new MarkdownParser.MarkdownParser(); var jsonText = mdParser.CreateJson(mdFile.Item2); jsonList.Add(new Tuple <string, string>($"{mdFile.Item1}.json", jsonText)); Console.WriteLine($"{mdFile.Item1} parsed."); } } catch (Exception e) { Console.WriteLine($"An error occured while parsing markdown files. Details: {e}"); return(false); } Console.WriteLine("Writing jsons to file share..."); return(await Utilities.WriteJsonFilesToFileShareTask(jsonList, storageAccConnectionString, fileShareName)); }
/// <summary> /// Prepare json with MdParser. /// </summary> /// <param name="mdFiles">list tuples with md files data</param> /// <param name="log">traceWriter for logging exceptions</param> /// <returns>List of tuple with two strings. First is fileName, second is json content</returns> public static List <Tuple <string, string> > PrepareJsonData(List <Tuple <string, string> > mdFiles, TraceWriter log) { var jsonList = new List <Tuple <string, string> >(); try { foreach (var mdFile in mdFiles) { var mdParser = new MarkdownParser.MarkdownParser(); var jsonText = mdParser.CreateJson(mdFile.Item2); jsonList.Add(new Tuple <string, string>($"{mdFile.Item1}.json", jsonText)); } } catch (Exception e) { log.Info("There was an exception thrown during preparation of Json data: " + e.Message); return(new List <Tuple <string, string> >()); } return(jsonList); }