public async Task <BbqItemLog> InsertItemLogAsync(BbqItemLog bbqItemLog) { using (await this.dbLock.LockAsync()) { this.context.ItemLogs.Add(bbqItemLog); await this.context.SaveChangesAsync(); return(bbqItemLog); } }
private async void OnTimerTick(object state) { Guid currentEvent = this.eventId; if (currentEvent == Guid.Empty) { return; } var items = await this.dataProvider.GetItemsForEventAsync(currentEvent); var timestamp = DateTime.Now; foreach (BbqItem item in items) { var log = new BbqItemLog { Timestamp = timestamp, BbqItemId = item.Id, CurrentPhase = item.CurrentPhase, ItemName = item.Name, Thermometer = item.ThermometerIndex }; // Now get the thermometer reading var temps = await this.thermometerService.ReadThermometer(item.ThermometerIndex - 1); // Handle the scenarios where the thermometer is reading bad values if (double.IsNaN(temps.Farenheight) || double.IsInfinity(temps.Farenheight)) { log.Temperature = -1; } else { log.Temperature = temps.Farenheight; } // Now do the insert await this.dataProvider.InsertItemLogAsync(log); } }