コード例 #1
0
        public static void WriteOperations(string targetDir, GraphAggregateEntity aggregateOperation, Func <GraphAggregateEntity, OperationEntity> mergeOperations, Func <GraphAggregateEntity, OperationEntity> mergeFunctionOrActions)
        {
            var mainOperation     = aggregateOperation.MainOperation;
            var operationFilePath = Utility.GetPath(mainOperation.Service, mainOperation.GroupName, mainOperation.Name);
            var absolutePath      = Path.Combine(targetDir, $"{operationFilePath}{YamlExtension}");

            if (!Directory.Exists(Path.GetDirectoryName(absolutePath)))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(absolutePath));
            }
            using (var writer = new StreamWriter(absolutePath))
            {
                if (aggregateOperation.IsFunctionOrAction)
                {
                    //todo: YamlMime:RESTFunctionV3
                    var mergedResult = mergeFunctionOrActions(aggregateOperation);
                    writer.WriteLine("### YamlMime:RESTOperationV3");
                    YamlSerializer.Serialize(writer, mergedResult);
                }
                else
                {
                    var mergedResult = mergeOperations(aggregateOperation);
                    writer.WriteLine("### YamlMime:RESTOperationV3");
                    YamlSerializer.Serialize(writer, mergedResult);
                }
            }
        }
コード例 #2
0
        private OperationEntity MergeOperations(GraphAggregateEntity aggregateOperation)
        {
            var mainOperation = aggregateOperation.MainOperation;

            if (aggregateOperation.GroupedOperations?.Count > 0)
            {
                foreach (var groupedOperation in aggregateOperation.GroupedOperations)
                {
                    mainOperation.Paths.Add(groupedOperation.Paths[0]);
                }
            }
            return(mainOperation);
        }