public static async Task <SwaggerDocumentViewModel> ToViewModelAsync(SwaggerSession session) { var doc = await SwaggerDocumentLoader.LoadFromUrlAsync(session.Url); var vm = new SwaggerDocumentViewModel(doc, session.Url, session.DisplayName); foreach (var storedOp in session.Operations) { var operation = vm.OperationGroups .SelectMany(g => g) .FirstOrDefault(op => op.OperationId == storedOp.Key); if (operation != null) { operation.SelectedContentType = storedOp.Value.ContentType; foreach (var storedArg in storedOp.Value.Arguments) { var parameter = operation.Arguments.FirstOrDefault(p => p.ParameterId == storedArg.Key); await parameter.SetSerializedValueAsync(storedArg.Value); } } } return(vm); }
public static SwaggerSession FromViewModel(SwaggerDocumentViewModel vm, string displayName) { return(new SwaggerSession { Url = vm.Url, DisplayName = displayName, Operations = vm.OperationGroups .SelectMany(g => g) .ToDictionary( op => op.OperationId, op => new StoredOperation { ContentType = op.SelectedContentType, Arguments = op.Arguments .Where(p => p.HasValue) .ToDictionary(p => p.ParameterId, p => p.GetSerializedValue()) }) }); }