private void ReaderOnTagSeen(object sender, TagSeenEventArgs e) { if (!this.tagsSeeings.TryGetValue(e.Identifier, out var statistic)) { statistic = new SeeingsStatistic { FirstAt = Clock.Time }; if (!this.tagsSeeings.TryAdd(e.Identifier, statistic)) { this.ReaderOnTagSeen(sender, e); } } statistic.IncrementTimes(); statistic.LastAt = Clock.Time; }
private async void RfidReader_TagSeen(object sender, TagSeenEventArgs e) { using (var context = new ReaderContext()) { var tag = await context.TagInfos.FirstAsync(x => x.RfidKey == e.Identifier); if (tag == null) { tag = new TagInfo { ActivationCount = 1, RfidKey = e.Identifier, }; await context.TagInfos.AddAsync(tag); } await context.ActivateEvents.AddAsync(new ActivateEvent { EventTime = DateTime.UtcNow, TagInfo = tag }); } }