public MetersViewModel( IMetersDatabase metersDatabase, HttpClient httpClient, INavigationService navigationService) { this.metersDatabase = metersDatabase; this.httpClient = httpClient; Refresh = new Command(async() => await RefreshDevices()); Configure = new Command(async() => await navigationService.NavigateToConfigureMetersPageAsync()); }
public ConfigureMetersViewModel(IMeteringStationDetector meteringStationDetector, IMetersDatabase metersDatabase, IEventAggregator eventAggregator) { this.meteringStationDetector = meteringStationDetector; this.metersDatabase = metersDatabase; registeredDevices = Enumerable.Empty <RegisteredMeter>().ToList(); Refresh = new Command(async() => await meteringStationDetector.StartDiscoveryAsync()); Load = new Command(() => Device.BeginInvokeOnMainThread(async() => await LoadRegisterdDevicesAsync())); AddDevice = new Command <MeteringDevice>(async device => await UpsertDeviceAsync(device)); RemoveDevice = new Command <MeteringDevice>(async device => await DeleteDeviceAsync(device)); eventAggregator.Subscribe <DetectionStartedEvent>(_ => IsLoading = true); eventAggregator.Subscribe <DetectionFinishedEvent>(_ => IsLoading = false); eventAggregator.Subscribe <DeviceDetectedEvent>(e => HandleDevice(e)); }