コード例 #1
0
ファイル: DevicePage.xaml.cs プロジェクト: rwojcik/imsClient
        public DevicePage(DeviceViewModel device, IDeviceRepository deviceRepository = null, IRealTimeService realTimeService = null)
        {
            _deviceViewModel = device;
            _deviceRepository = deviceRepository ?? DependencyService.Get<IDeviceRepository>();
            _realTimeService = realTimeService ?? DependencyService.Get<IRealTimeService>();
            _notifyPage = new NotifyPage(this);
            _realTimeService.DeviceUpdated += RealTimeService_DeviceUpdated;

            BindingContext = _deviceViewModel;

            InitializeComponent();

            if (device.DeviceType == DeviceType.AutomaticWindow || device.DeviceType == DeviceType.Thermostat)
                ChangeSettingButton.IsVisible = true;

            if (device.DeviceType == DeviceType.Thermostat)
                ContinousSettingEntry.IsVisible = true;

        }
コード例 #2
0
ファイル: DevicePage.xaml.cs プロジェクト: rwojcik/imsClient
        private async Task PutNewModel(DeviceViewModel deviceViewModel)
        {
            var updateModel = new UpdateDeviceViewModel
            {
                Discriminator = deviceViewModel.Discriminator,
                BinarySetting = deviceViewModel.BinarySetting,
                ContinousSetting = deviceViewModel.ContinousSetting,
                DeviceId = deviceViewModel.DeviceId,
                Description = deviceViewModel.Description,
                GroupId = deviceViewModel.GroupId,
                Name = deviceViewModel.Name
            };

            if (!await _deviceRepository.PutDeviceAsync(updateModel))
            {
                Debug.WriteLine($"{nameof(DevicePage)}.{nameof(PutNewModel)}, could not put new model");
            }
            else
            {
                Debug.WriteLine($"{nameof(DevicePage)}.{nameof(PutNewModel)}, model updated");
            }
        }
コード例 #3
0
ファイル: DevicePage.xaml.cs プロジェクト: rwojcik/imsClient
        private async void ChangeSettingButton_OnClicked(object sender, EventArgs e)
        {
            var button = sender as Button;

            if (button == null)
            {
                Debug.WriteLine($"{nameof(DevicePage)}.{nameof(ChangeSettingButton_OnClicked)}, sender is not {typeof(Button)}, found instead {sender?.GetType()}");
                return;
            }

            var newViewModel = new DeviceViewModel
            {
                DeviceType = _deviceViewModel.DeviceType,
                BinarySetting = _deviceViewModel.BinarySetting,
                ContinousSetting = _deviceViewModel.ContinousSetting,
                Discriminator = _deviceViewModel.Discriminator,
                Description = _deviceViewModel.Description,
                DeviceId = _deviceViewModel.DeviceId,
                GroupId = _deviceViewModel.GroupId,
                History = _deviceViewModel.History,
                Name = _deviceViewModel.Name
            };

            if (_deviceViewModel.Discriminator == "Binary")
            {
                button.IsEnabled = false;
                newViewModel.BinarySetting = !newViewModel.BinarySetting;

                var sent = await _realTimeService.UpdateDeviceAsync(new DeviceSetting(newViewModel));

                Debug.WriteLine($"{nameof(DevicePage)}.{nameof(ChangeSettingButton_OnClicked)}, sent request to change setting: {sent}");
            }
            else if (_deviceViewModel.Discriminator == "Continous")
            {
                button.IsEnabled = false;

                var entryText = ContinousSettingEntry.Text;

                double newValue;
                if (!double.TryParse(entryText, out newValue))
                {
                    _notifyPage.DisplayAlert("Error", "New value has unknown format!");
                    Debug.WriteLine($"{nameof(DevicePage)}.{nameof(ChangeSettingButton_OnClicked)}, new value has unknown format: {ContinousSettingEntry.Text}");
                }
                else
                {
                    newViewModel.ContinousSetting = newValue;
                    var sent = await _realTimeService.UpdateDeviceAsync(new DeviceSetting(newViewModel));
                    Debug.WriteLine($"{nameof(DevicePage)}.{nameof(ChangeSettingButton_OnClicked)}, sent request to change setting: {sent}");
                }
            }
            else
            {
                Debug.WriteLine($"{nameof(DevicePage)}.{nameof(ChangeSettingButton_OnClicked)}, unknown view model {nameof(_deviceViewModel.Discriminator)} - {_deviceViewModel.Discriminator}");
            }
        }
コード例 #4
0
ファイル: GroupPage.xaml.cs プロジェクト: rwojcik/imsClient
 public DeviceChooseEventArgs(DeviceViewModel device)
 {
     DeviceViewModel = device;
 }