Example #1
0
        public async Task <BbqItemLog> InsertItemLogAsync(BbqItemLog bbqItemLog)
        {
            using (await this.dbLock.LockAsync())
            {
                this.context.ItemLogs.Add(bbqItemLog);
                await this.context.SaveChangesAsync();

                return(bbqItemLog);
            }
        }
Example #2
0
        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);
            }
        }