Skip to content

Commit

Permalink
* intermediate save
Browse files Browse the repository at this point in the history
  • Loading branch information
festo-i40 committed Mar 7, 2025
1 parent fcc66f7 commit 874c0fc
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 43 deletions.
52 changes: 15 additions & 37 deletions src/AasxCsharpLibrary/AdminShellPackageEnv.cs
Original file line number Diff line number Diff line change
Expand Up @@ -199,51 +199,29 @@ public static AasCore.Aas3_0.Environment DeserializeXmlFromStreamWithCompat(Stre
// nope!
return null;
}
// dead-csharp off
//public static JsonSerializer BuildDefaultAasxJsonSerializer()
//{
// var serializer = new JsonSerializer();
// serializer.Converters.Add(
// new AdminShellConverters.JsonAasxConverter(
// "modelType", "name"));
// return serializer;
//}

public static T DeserializeFromJSON<T>(string data) where T : IReferable
{
//using (var tr = new StringReader(data))
//{
//var serializer = BuildDefaultAasxJsonSerializer();
//var rf = (T)serializer.Deserialize(tr, typeof(T));

var node = System.Text.Json.Nodes.JsonNode.Parse(data);
var rf = Jsonization.Deserialize.IReferableFrom(node);

return (T)rf;
//}
}

//public static T DeserializeFromJSON<T>(JToken obj) where T : IReferable
//{
// if (obj == null)
// return default(T);
// var serializer = BuildDefaultAasxJsonSerializer();
// var rf = obj.ToObject<T>(serializer);
// return rf;
//}

///// <summary>
///// Use this, if <c>DeserializeFromJSON</c> is too tight.
///// </summary>
//public static T DeserializePureObjectFromJSON<T>(string data)
//{
// using (var tr = new StringReader(data))
// {
// //var serializer = BuildDefaultAasxJsonSerializer();
// //var rf = (T)serializer.Deserialize(tr, typeof(T));
// return null;
// }
//}
// dead-csharp on
/// <summary>
/// Use this to deserialize flexible JSON "coming from the outside"
/// </summary>
public static T DeserializeAdaptiveFromJSON<T>(string jsonInput) where T : IClass
{
using (JsonTextReader reader = new JsonTextReader(new StringReader(jsonInput)))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Converters.Add(new AdminShellConverters.AdaptiveAasIClassConverter(
AdminShellConverters.AdaptiveAasIClassConverter.ConversionMode.AasCore));
var res = serializer.Deserialize<T>(reader);
return res;
}
}
}

/// <summary>
Expand Down
28 changes: 22 additions & 6 deletions src/AasxPackageLogic/DispEditHelperMiniModules.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,15 @@ private bool PasteQualifierTextIntoExisting(
string jsonInput,
Aas.IQualifier qCurr)
{
var qIn = JsonConvert.DeserializeObject<Aas.Qualifier>(jsonInput);
// var qIn = JsonConvert.DeserializeObject<Aas.Qualifier>(jsonInput);
var qIn = AdminShellSerializationHelper.DeserializeAdaptiveFromJSON<Aas.Qualifier>(jsonInput);

//JsonTextReader reader = new JsonTextReader(new StringReader(jsonInput));
//JsonSerializer serializer = new JsonSerializer();
//serializer.Converters.Add(new AdminShellConverters.AdaptiveAasIClassConverter(
// AdminShellConverters.AdaptiveAasIClassConverter.ConversionMode.AasCore));
//var qIn = serializer.Deserialize<Aas.Qualifier>(reader);

if (qCurr != null && qIn != null)
{
qCurr.Type = qIn.Type;
Expand Down Expand Up @@ -317,8 +325,12 @@ public void QualifierHelper(
}
break;
case 3:
var jsonStr = JsonConvert.SerializeObject(
qualifiers[storedI], Formatting.Indented);
var jsonStr = Aas.Jsonization.Serialize.ToJsonObject(qualifiers[storedI])
.ToJsonString(new System.Text.Json.JsonSerializerOptions()
{
WriteIndented = true
});

this.context?.ClipboardSet(new AnyUiClipboardData(jsonStr));
Log.Singleton.Info("Qualified serialized to clipboard.");
break;
Expand Down Expand Up @@ -940,7 +952,7 @@ public void ExtensionHelper(
catch (Exception ex)
{
Log.Singleton.Error(
ex, $"While show Qualifier presets ({pfn})");
ex, $"While show Extension presets ({pfn})");
}
}

Expand Down Expand Up @@ -1024,8 +1036,12 @@ public void ExtensionHelper(
}
break;
case 3:
var jsonStr = JsonConvert.SerializeObject(
extensions[storedI], Formatting.Indented);
var jsonStr = Aas.Jsonization.Serialize.ToJsonObject(extensions[storedI])
.ToJsonString(new System.Text.Json.JsonSerializerOptions()
{
WriteIndented = true
});

this.context?.ClipboardSet(new AnyUiClipboardData(jsonStr));
Log.Singleton.Info("Extension serialized to clipboard.");
break;
Expand Down

0 comments on commit 874c0fc

Please sign in to comment.