コード例 #1
0
        public App()
        {
            InitializeComponent();

            var container = GetContainerBuilder().Build();

            meteringStationDetector = container.Resolve <IMeteringStationDetector>();
            MainPage = new NavigationPage(container.Resolve <MetersPage>());
        }
コード例 #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));
        }