private static void ExtractData( IDictionary <string, string> aliases, IQueryResult mergedResult, QueryResultBuilder result) { var data = new ResultMap(); data.EnsureCapacity(aliases.Count); var i = 0; if (mergedResult.Data is not null) { foreach (KeyValuePair <string, string> alias in aliases) { if (mergedResult.Data.TryGetValue(alias.Key, out object?o)) { data.SetValue(i++, alias.Value, o); } } } else { foreach (KeyValuePair <string, string> alias in aliases) { data.SetValue(i++, alias.Value, null); } } result.SetData(data); }
public static IQueryResult Deserialize( IReadOnlyDictionary <string, object?> serializedResult) { var result = new QueryResultBuilder(); if (serializedResult.TryGetValue(_data, out object?data)) { result.SetData(data as IReadOnlyDictionary <string, object?>); } if (serializedResult.TryGetValue(_extensions, out object?extensionData)) { result.SetExtensions(extensionData as IReadOnlyDictionary <string, object?>); } DeserializeErrors(result, serializedResult); return(result.Create()); }
public static IReadOnlyQueryResult Deserialize( IReadOnlyDictionary <string, object> serializedResult) { var result = new QueryResultBuilder(); var data = new OrderedDictionary(); var extensionData = new ExtensionData(); DeserializeRootField( data, serializedResult, _data); result.SetData(data); DeserializeRootField( extensionData, serializedResult, _extensions); result.SetExtensions(extensionData); DeserializeErrors(result, serializedResult); return(result.Create()); }