public async Task VisitAsync(SnapshotEvent e) { var result = CreateBase(e); result["Type"] = "Snapshot"; result["Items"] = JObject.FromObject(e.Items); await SaveResultAsync(result); }
protected override bool TryParse(string json, out Event result) { result = null; var obj = JObject.Parse(json); if (obj.Value <string>("Type") != "Snapshot") { return(false); } var id = obj.Value <string>("_id"); var storageId = obj.Value <string>("StorageId"); var items = obj["Items"].ToObject <Dictionary <string, int> >(); result = new SnapshotEvent(id, storageId, items); return(true); }
public async Task VisitAsync(SnapshotEvent e) { var storage = source.SingleOrDefault(entity => entity.Id == e.StorageId); if (storage != null) { source.Remove(storage); } var items = e.Items.Select(pair => new Item(pair.Key, pair.Value)); var storageData = new StorageRepositoryData { Id = e.StorageId, Items = items }; source.Add(new Storage(storageData)); await Task.CompletedTask; }