private async Task UpdateHistory(DeviceViewModel deviceVm) { try { Log.Debug(deviceVm.Address.AbsoluteUri, "Running history update"); // Figure out how much history needs to be loaded // Get last entry from history of device X var lastUpdate = Devices.First(d => d.Address == deviceVm.Address).History.LastOrDefault().Time; // Calculate required history pages (max20) var timePassed = DateTime.Now - lastUpdate; var requiredPages = (int)Math.Ceiling(timePassed.TotalMinutes / _IMPULSE); Log.Debug(deviceVm.Address.AbsoluteUri, "Last value was from", lastUpdate, "therefore pages required:", requiredPages); if (requiredPages <= 0) { requiredPages = 1; } else if (requiredPages > 20) { requiredPages = 20; } // Connect var service = new YouLessService(deviceVm.Address); // get each page and add to devices history for (int i = requiredPages; i != 0; i--) { // Update History var history = await service.GetHistory(i); deviceVm.UpdateHistory(history); } // Save Save(); Log.Debug(deviceVm.Address.AbsoluteUri, "done"); } catch (Exception ex) { Log.Debug(deviceVm.Address.AbsoluteUri, "FAILED"); Log.Error(deviceVm.Address.AbsoluteUri, ex); } }
// STATUS ######################################################################## internal async Task UpdateStatus(DeviceViewModel deviceVm) { try { Log.Debug(deviceVm.Address.AbsoluteUri, "Running status update"); // Connect var service = new YouLessService(deviceVm.Address); // Update Status var status = await service.GetStatus(); deviceVm.UpdateStatus(status); deviceVm.Status = true; Log.Debug(deviceVm.Address.AbsoluteUri, "done"); } catch (Exception ex) { deviceVm.Status = false; Log.Debug(deviceVm.Address.AbsoluteUri, "FAILED"); Log.Error(deviceVm.Address.AbsoluteUri, ex); } }