public Task <List <CounterSummary> > ReadSnapshotsAsync(int start, int pageSize, CancellationToken cancellationToken)
        {
            var results = new List <CounterSummary>();

            while (_reader.Read() && _reader.TokenType != JsonToken.EndArray)
            {
                cancellationToken.ThrowIfCancellationRequested();

                var snapshot = RavenJToken.ReadFrom(_reader);

                var group    = snapshot.Value <string>("Group");
                var name     = snapshot.Value <string>("Name");
                var positive = snapshot.Value <long>("Positive");
                var negative = snapshot.Value <long>("Negative");

                var summary = new CounterSummary
                {
                    CounterName = name,
                    GroupName   = group,
                    Decrements  = negative,
                    Increments  = positive
                };

                results.Add(summary);
            }

            return(new CompletedTask <List <CounterSummary> >(results));
        }
Beispiel #2
0
        public Task WriteSnapshotAsync(CounterSummary snapshot, CancellationToken cancellationToken)
        {
            Writer.WriteStartObject();
            Writer.WritePropertyName("Group");
            Writer.WriteValue(snapshot.GroupName);

            Writer.WritePropertyName("Name");
            Writer.WriteValue(snapshot.CounterName);
            Writer.WritePropertyName("Positive");
            Writer.WriteValue(snapshot.Increments);

            Writer.WritePropertyName("Negative");
            Writer.WriteValue(snapshot.Decrements);

            Writer.WriteEndObject();

            return(new CompletedTask());
        }