public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { ISelectExpandWrapper selectExpandWrapper = value as ISelectExpandWrapper; if (selectExpandWrapper != null) { serializer.Serialize(writer, selectExpandWrapper.ToDictionary(_mapperProvider)); } }
/// <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)); } }
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); } }
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 + "---"); } }