public App() { InitializeComponent(); var container = GetContainerBuilder().Build(); meteringStationDetector = container.Resolve <IMeteringStationDetector>(); MainPage = new NavigationPage(container.Resolve <MetersPage>()); }
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)); }