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; }
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)); }