Пример #1
0
        public async Task <NobreakState> ReadState()
        {
            OpenSerialPort();
            _serial.Write("Q1\r");
            var res = await Task.Run(() => _serial.ReadTo("\r"), new CancellationTokenSource(TimeSpan.FromSeconds(1)).Token);

            return(NobreakState.FromSerialResponse(res));
        }
Пример #2
0
        public async Task SaveState(NobreakState state)
        {
            using var scope   = _serviceProvider.CreateScope();
            using var context = scope.ServiceProvider.GetService <IDbContext>();
            var lastState = await context.NobreakStates.OrderBy(s => s.Timestamp).LastOrDefaultAsync();

            if (lastState == null || lastState.PowerState != state.PowerState)
            {
                context.Add(new NobreakStateChange(state));
            }
            context.Add(state);
            await context.SaveChangesAsync();
        }
Пример #3
0
 public NobreakStateChange(NobreakState nobreakState)
 {
     NobreakState = nobreakState;
 }