Example #1
0
        /// <summary>
        /// Save a Workspace to json.
        /// </summary>
        /// <returns>A string representing the serialized WorkspaceModel.</returns>
        internal static string ToJson(this WorkspaceModel workspace, EngineController engine)
        {
            var logger = engine != null?engine.AsLogger() : null;

            var settings = new JsonSerializerSettings
            {
                Error = (sender, args) =>
                {
                    args.ErrorContext.Handled = true;
                    Console.WriteLine(args.ErrorContext.Error);
                },
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
                TypeNameHandling      = TypeNameHandling.Auto,
                Formatting            = Formatting.Indented,
                Culture    = CultureInfo.InvariantCulture,
                Converters = new List <JsonConverter> {
                    new ConnectorConverter(logger),
                    new WorkspaceWriteConverter(engine),
                    new DummyNodeWriteConverter(),
                    new TypedParameterConverter(),
                    new PackageDependencyConverter(logger),
                },
                ReferenceResolverProvider = () => { return(new IdReferenceResolver()); }
            };

            var json   = JsonConvert.SerializeObject(workspace, settings);
            var result = ReplaceTypeDeclarations(json);

            return(result);
        }