public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            ISelectExpandWrapper selectExpandWrapper = value as ISelectExpandWrapper;

            if (selectExpandWrapper != null)
            {
                serializer.Serialize(writer, selectExpandWrapper.ToDictionary(_mapperProvider));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
        /// <param name="value">The value.</param>
        /// <param name="serializer">The calling serializer.</param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            if (serializer is null)
            {
                throw new ArgumentNullException(nameof(serializer));
            }

            ISelectExpandWrapper selectExpandWrapper = value as ISelectExpandWrapper;

            if (selectExpandWrapper != null)
            {
                serializer.Serialize(writer, selectExpandWrapper.ToDictionary(_mapperProvider));
            }
        }
Ejemplo n.º 3
0
        public override void WriteObjectInline(object graph, IEdmTypeReference expectedType, ODataWriter writer, ODataSerializerContext writeContext)
        {
            if (graph == null)
            {
                return;
            }

            ISelectExpandWrapper wrapper = graph as ISelectExpandWrapper;

            if (wrapper != null)
            {
                IDictionary <string, object> properties = wrapper.ToDictionary();
                if (properties == null || !properties.Any())
                {
                    return;
                }
            }

            base.WriteObjectInline(graph, expectedType, writer, writeContext);
        }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            if (serializer == null)
            {
                throw new ArgumentNullException("serializer");
            }

            ISelectExpandWrapper wrapper = value as ISelectExpandWrapper;

            if (wrapper != null)
            {
                var convertedValue = wrapper.ToDictionary((model, type) => this.propertyMapper);
                if ((bool)convertedValue["__deleted"])
                {
                    var keysToRemove = convertedValue.Where(item => (item.Key != "__deleted") && (item.Key != "Id")).Select(item => item.Key).ToList();
                    foreach (string key in keysToRemove)
                    {
                        convertedValue.Remove(key);
                    }
                }
                serializer.Serialize(writer, convertedValue);
            }
        }
Ejemplo n.º 5
0
        private static void PrintRecursive(ISelectExpandWrapper wrapper, string indent = "|")
        {
            var metadata = wrapper.ToDictionary();

            foreach (KeyValuePair <string, object> pair in metadata)
            {
                if (pair.Value is ISelectExpandWrapper property)
                {
                    Console.WriteLine($"{indent}-{pair.Key}:");
                    PrintRecursive(property, indent + "  |");
                    continue;
                }

                if (pair.Value is IEnumerable <ISelectExpandWrapper> collection)
                {
                    Console.WriteLine($"{indent}-{pair.Key}:");
                    foreach (ISelectExpandWrapper item in collection)
                    {
                        PrintRecursive(item, indent + "  |");
                    }

                    continue;
                }

                Console.WriteLine($"{indent}-{pair.Key}: {pair.Value}");
            }

            if (indent == "|")
            {
                Console.WriteLine();
            }
            else
            {
                Console.WriteLine(indent + "---");
            }
        }