Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        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;
        }