Example #1
0
        void AddResult(TestOperationResult result, ConcurrentDictionary <string, ConcurrentDictionary <string, Tuple <int, DateTime> > > cache)
        {
            ConcurrentDictionary <string, Tuple <int, DateTime> > batch = cache.GetOrAdd(result.Source, key => new ConcurrentDictionary <string, Tuple <int, DateTime> >());

            // lock needed for update of concurrent dict
            lock (batch)
            {
                batch.AddOrUpdate(
                    result.Result,
                    new Tuple <int, DateTime>(1, result.CreatedAt),
                    (key, value) => new Tuple <int, DateTime>(
                        value.Item1 + 1,
                        result.CreatedAt > value.Item2 ? result.CreatedAt : value.Item2));
            }
        }
Example #2
0
        public async Task <bool> AddTwinResultAsync(TestOperationResult result)
        {
            await this.twinsStore.Append(result);

            return(true);
        }
Example #3
0
        public async Task <bool> AddDirectMethodResultAsync(TestOperationResult result)
        {
            await this.directMethodsStore.Append(result);

            return(true);
        }