コード例 #1
0
        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());
        }
コード例 #2
0
        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));
        }