Example #1
0
        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);
        }
Example #2
0
        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());
        }