public static void Serialize(ref MessagePackWriter writer, IPocoTracker <T> value, MessagePackSerializerOptions options) { var tracker = (TrackablePocoTracker <T>)value; writer.WriteArrayHeader(tracker.ChangeMap.Count); foreach (var item in tracker.ChangeMap) { writer.Write(item.Key.Name); } foreach (var item in tracker.ChangeMap) { if (item.Value.NewValue == null) { writer.WriteNil(); } else { var method = SerializeMethodCache.GetSerializeMethod(item.Value.NewValue.GetType()); var stream = new MemoryStream(10); method.Invoke(null, new object[] { stream, item.Value.NewValue, options, null }); writer.Write(stream.ToArray()); } } }
public Task <int> SaveAsync(DbConnection connection, IPocoTracker <T> tracker, params object[] keyValues) { return(SaveAsync(connection, (TrackablePocoTracker <T>)tracker, keyValues)); }
public Task <UpdateResult> SaveAsync(IMongoCollection <BsonDocument> collection, IPocoTracker <T> tracker, params object[] keyValues) { return(SaveAsync(collection, (TrackablePocoTracker <T>)tracker, keyValues)); }
public void Serialize(ref MessagePackWriter writer, IPocoTracker <T> value, MessagePackSerializerOptions options) { TrackablePocoTrackerMessagePackFormatter <T> .Serialize(ref writer, value, options); }
public Task SaveAsync(IDatabase db, IPocoTracker <T> tracker, RedisKey key) { return(SaveAsync(db, (TrackablePocoTracker <T>)tracker, key)); }