Exemplo n.º 1
0
        public async Task saveHistoryStatus(int thingId)
        {
            var status = await _context.ActiveThingStatus
                         .Where(x => x.thingId == thingId)
                         .Include(x => x.statusContexts)
                         .FirstOrDefaultAsync();

            var historyStatus = new HistoryThingStatus();

            historyStatus.thing          = status.thing;
            historyStatus.thingId        = status.thingId;
            historyStatus.statusContexts = new List <HistoryContextStatus>();
            foreach (var item in status.statusContexts)
            {
                var historyStatusContext = new HistoryContextStatus();
                historyStatusContext.context             = item.context;
                historyStatusContext.contextDescription  = item.contextDescription;
                historyStatusContext.startTimestampTicks = item.startTimestampTicks;
                historyStatusContext.statusName          = item.statusName;
                historyStatusContext.value             = item.value;
                historyStatusContext.endTimestampTicks = DateTime.Now.Ticks;
                historyStatus.statusContexts.Add(historyStatusContext);
            }
            _context.HistoryThingStatus.Add(historyStatus);
            await _context.SaveChangesAsync();
        }
Exemplo n.º 2
0
        public async Task saveHistoryContextStatus(int thingId, string context)
        {
            var curStatus = await _context.ActiveThingStatus
                            .Where(x => x.thingId == thingId)
                            .Include(x => x.statusContexts)
                            .FirstOrDefaultAsync();

            var updatedStatus   = curStatus.statusContexts.Where(x => x.context == context).FirstOrDefault();
            var histThingStatus = new HistoryThingStatus();

            histThingStatus.thingId        = thingId;
            histThingStatus.statusContexts = new List <HistoryContextStatus>();
            if (updatedStatus != null)
            {
                var histContextStatus = new HistoryContextStatus();
                histContextStatus.context             = updatedStatus.context;
                histContextStatus.contextDescription  = updatedStatus.contextDescription;
                histContextStatus.endTimestampTicks   = DateTime.Now.Ticks;
                histContextStatus.startTimestampTicks = updatedStatus.startTimestampTicks;
                histContextStatus.statusName          = updatedStatus.statusName;
                histContextStatus.value = updatedStatus.value;
                histThingStatus.statusContexts.Add(histContextStatus);
                _context.HistoryThingStatus.Add(histThingStatus);
                await _context.SaveChangesAsync();
            }
        }