Beispiel #1
0
        private static async Task Main(string[] args)
        {
            var noCache                  = args.ContainsIgnoreCase("/nocache");
            var directory                = FullPath.FromPath("../../../../Meziantou.GitLabClient");
            var coverageOutputFile       = FullPath.FromPath("../../../../../docs/coverage.md");
            var clientTemplateOutputFile = FullPath.FromPath("../../../GitLabModels/Clients/_template.txt");

            Console.WriteLine("Generating files to " + directory);
            Console.WriteLine("Generating overage file to " + coverageOutputFile);

            var model         = GitLabModelBuilder.Create();
            var documentation = await GitLabDocumentationResource.LoadResourcesAsync(noCache);

            model.Merge(documentation);

            await Task.WhenAll(
                Task.Run(() => EmojiGenerator.GenerateAsync(directory)),
                Task.Run(() => new GitLabClientGenerator().Generate(directory, model)),
                Task.Run(() => GenerateApiCoverage()),
                Task.Run(() => GraphqlGenerator.GenerateAsync(directory, noCache))
                );

            async Task GenerateApiCoverage()
            {
                var markdown = ApiCoverage.GetMarkdown(model, documentation);

                IOUtilities.PathCreateDirectory(coverageOutputFile);
                await File.WriteAllTextAsync(coverageOutputFile, markdown);

                var template = ApiCoverage.GetNotImplementedTemplate(model, documentation);
                await File.WriteAllTextAsync(clientTemplateOutputFile, template);
            }
        }
        private void InterpretSchemaGraphQl(string key, Uri uri)
        {
            var action = new GraphqlGenerator(uri.ToString());

            try
            {
                var actions = action.GetIntrospection().GetAwaiter().GetResult();
                this.GraphQLs.Add(key, new BlocklyFileGenerator(actions));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            return;
        }