Пример #1
0
 public TagsGenerator(JObject rootJObj, string targetDir, string filePath, OperationGroupMapping operationGroupMapping, OrgsMappingFile orgsMappingFile, IDictionary <string, int> lineNumberMappingDict, RepoFile repoFile, string swaggerRelativePath, string version)
     : base(rootJObj, targetDir, filePath, orgsMappingFile, lineNumberMappingDict, repoFile, swaggerRelativePath, version)
 {
     OperationGroupMapping = operationGroupMapping;
 }
Пример #2
0
        public static RestFileInfo Split(string targetDir, string filePath, string swaggerRelativePath, string serviceId, string serviceName, string subGroupName, OperationGroupMapping operationGroupMapping, OrgsMappingFile orgsMappingFile, RepoFile repoFile, string version)
        {
            if (!Directory.Exists(targetDir))
            {
                throw new ArgumentException($"{nameof(targetDir)} '{targetDir}' should exist.");
            }
            if (!File.Exists(filePath))
            {
                throw new ArgumentException($"{nameof(filePath)} '{filePath}' should exist.");
            }

            var sourceSwaggerFilePath = Utility.GetSourceSwaggerFilePath(filePath);
            IDictionary <string, int> lineNumberMappingDict = new Dictionary <string, int>();

            using (var streamReader = File.OpenText(sourceSwaggerFilePath))
            {
                using (var reader = new JsonTextReader(streamReader))
                {
                    var rootJObj = JObject.Load(reader);
                    lineNumberMappingDict = GetLineNumberMappingInfo(rootJObj);
                }
            }

            var restFileInfo = new RestFileInfo();

            using (var streamReader = File.OpenText(filePath))
            {
                using (var reader = new JsonTextReader(streamReader))
                {
                    reader.DateParseHandling = DateParseHandling.None;

                    var rootJObj = JObject.Load(reader);

                    // Resolve $ref with json file instead of definition reference in the same swagger
                    var refResolver = new RefResolver(rootJObj, filePath);
                    refResolver.Resolve();

                    if (orgsMappingFile.NeedResolveXMsPaths)
                    {
                        var xMsPathsResolver = new XMsPathsResolver(rootJObj);
                        xMsPathsResolver.Resolve();
                    }

                    rootJObj["x-internal-service-id"]     = serviceId;
                    rootJObj["x-internal-service-name"]   = serviceName;
                    rootJObj["x-internal-sub-group-name"] = subGroupName;

                    var generator     = GeneratorFactory.CreateGenerator(rootJObj, targetDir, filePath, operationGroupMapping, orgsMappingFile, lineNumberMappingDict, repoFile, swaggerRelativePath, version);
                    var fileNameInfos = generator.Generate().ToList();

                    if (fileNameInfos.Any())
                    {
                        restFileInfo.FileNameInfos = fileNameInfos;
                    }

                    restFileInfo.TocTitle = GetInfoTitle(rootJObj);
                }
            }
            return(restFileInfo);
        }
 public static IGenerator CreateGenerator(JObject rootJObj, string targetDir, string filePath, OperationGroupMapping operationGroupMapping, OrgsMappingFile orgsMappingFile, IDictionary <string, int> lineNumberMappingDict, RepoFile repoFile, string swaggerSourcePath, string version)
 {
     if (orgsMappingFile.IsGroupdedByTag)
     {
         return(new TagsGenerator(rootJObj, targetDir, filePath, operationGroupMapping, orgsMappingFile, lineNumberMappingDict, repoFile, swaggerSourcePath, version));
     }
     return(new OperationGroupGenerator(rootJObj, targetDir, filePath, operationGroupMapping, orgsMappingFile, lineNumberMappingDict, repoFile, swaggerSourcePath, version));
 }