Ejemplo n.º 1
0
        public bool Execute()
        {
            var metadataFiles = MetadataFiles.Select(x => x.GetMetadata("Fullpath")).ToList();

            if (!MetadataFiles.Any())
            {
                ControlFlow.SuppressErrors(() =>
                {
                    var exampleFile = Path.Combine(BaseDirectory, "RandomTool.json");
                    HttpTasks.HttpDownloadFile(c_exampleUrl, exampleFile);
                    metadataFiles.Add(exampleFile);
                });
            }

            CodeGenerator.GenerateCode(
                metadataFiles,
                BaseDirectory,
                UseNestedNamespaces,
                BaseNamespace,
                GitRepository.FromLocalDirectory(BaseDirectory));

            if (UpdateReferences)
            {
                ReferenceUpdater.UpdateReferences(metadataFiles);
            }

            return(true);
        }
Ejemplo n.º 2
0
        public void ProcessDirectory(DirectoryInfo directory, Dictionary <ImportFileType, string> fileTypes = null)
        {
            try
            {
                if (directory == null ||
                    !directory.Exists)
                {
                    throw new Exception(
                              "The specified directory does not exist! Unable to process a directory from nothing or a non-existent path.");
                }

                Console.WriteLine($"\r{DateTime.Now} | Processing files in {directory.Name}\t\t\t\t\t");

                fileTypes = fileTypes ?? FileTypes;

                IReadOnlyCollection <FileInfo> files;
                // Kept separate from first definition so we can comment out certain sections to work on only what we want

                //files = directory.GetFiles($"*{fileTypes[ImportFileType.CodePage]}");

                //if (!files.Any())
                //	Console.WriteLine($"\rNo Code Page Files were found. Defaulting to {DefaultCodePage.Encoding.EncodingName}\t\t\t\t\t");
                //else
                //	foreach (FileInfo file in files)
                //		CodePageFiles.Add(new CodePageFile(file));

                //files = directory.GetFiles($"*{fileTypes[ImportFileType.Projection]}");

                //if (!files.Any())
                //	Console.WriteLine($"\rNo Projection Files were found. Defaulting to SRID {DefaultSRID}\t\t\t\t\t");
                //else
                //	foreach (FileInfo file in files)
                //		ProjectionFiles.Add(new ProjectionFile(file));

                files = directory.GetFiles($"*{fileTypes[ImportFileType.XmlFile]}").OrderBy(o => o.Name).ToArray();

                if (!files.Any())
                {
                    throw new Exception($"\rNo Metadata Files were found! Unable to generate appropriate schemas!");
                }

                foreach (FileInfo file in files)
                {
                    MetadataFiles.Add(new MetadataFile(file));
                }

                //Parallel.ForEach(files, f => MetadataFiles.Add(new MetadataFile(f)));
            }
            catch (Exception e)
            {
                Console.WriteLine($"\r\n{e.Message}\r\n{e}");
                throw;
            }
        }