/// <summary> /// Executes the select user command. /// </summary> /// <returns>The select user command.</returns> private void ExecuteSelecUserCommand() { if (IsBusy) { return; } IsBusy = true; Page.ShowProgressIndicator(); SelecUserCommand.ChangeCanExecute(); try { Task.Run(async() => { if (HaccpAppSettings.SharedInstance.IsWindows) { await Task.Delay(500); } var isUserExist = _dataStore.CheckUsersExist(); if (isUserExist) { Device.BeginInvokeOnMainThread(async() => { await Page.NavigateTo(PageEnum.SelectUser, true); IsBusy = false; Page.DismissPopup(); SelecUserCommand.ChangeCanExecute(); }); } else { Device.BeginInvokeOnMainThread(() => { Page.DisplayAlertMessage(HACCPUtil.GetResourceString("NoUsersFound"), HACCPUtil.GetResourceString("NousersfoundPleasetapUpdateUserListintheWirelessTasksmenu")); IsBusy = false; Page.DismissPopup(); SelecUserCommand.ChangeCanExecute(); }); } }); } catch (Exception ex) { Debug.WriteLine("ExecuteSelecUserCommand Error {0}", ex.Message); } }
private async Task <bool> getLocationPermission() { if (Device.OS != TargetPlatform.Android) { return(true); } else { try { PermissionStatus status = await CrossPermissions.Current.CheckPermissionStatusAsync(Plugin.Permissions.Abstractions.Permission.Location); if (status != PermissionStatus.Granted) { if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Plugin.Permissions.Abstractions.Permission.Location)) { await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("AndroidrequiresLocationpermissionforBluetoothLEscanning")); //Android requires \"Location\" permission for Bluetooth LE scanning. } var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Plugin.Permissions.Abstractions.Permission.Location }); status = results[Plugin.Permissions.Abstractions.Permission.Location]; } if (status != PermissionStatus.Granted) { await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("CannotscanforBlue2withoutLocationpermission")); //Cannot scan for Blue2 without \"Location\" permission. return(false); } else { return(true); } } catch (Exception ex) { await Page.ShowAlert(string.Empty, ex.ToString()); return(false); } } }
/// <summary> /// Loads the menu item. /// </summary> /// <returns>The menu item.</returns> /// <param name="location">Location.</param> public async Task LoadMenuItem(MenuLocation location) { if (IsBusy) { return; } IsBusy = true; if (_dataStore.CheckItemExists(location.LocationId)) { await Page.NavigateToWithSelectedObject(PageEnum.SelectLocationItem, true, location); } else { await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Noitemsfound")); } IsBusy = false; }
/// <summary> /// Executes the blue2 command. /// </summary> private async void ExecuteBlue2Command() { if (HaccpAppSettings.SharedInstance.IsWindows) { WindowsBlue2Command(); return; } if (!BLEManager.SharedInstance.Adapter.IsBluetoothEnabled) { await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice")); return; } if (BLEManager.SharedInstance.ReadingBlue2Data) { return; } Blue2Command.ChangeCanExecute(); bool gotPermission = await getLocationPermission(); if (gotPermission) { BLEManager.SharedInstance.ResetConnection(); if (!BLEManager.SharedInstance.ScanTimeOutElapsed) { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanning"), false); } else if (!BLEManager.SharedInstance.IsConnected) { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); } } Blue2Command.ChangeCanExecute(); }
/// <summary> /// Loads the questions. /// </summary> /// <returns>The questions.</returns> public async Task LoadQuestions() { if (IsBusy) { return; } IsBusy = true; if (dataStore.CheckQuestionExists(SelectedCategory.CategoryId)) { await Page.NavigateToWithSelectedObject(PageEnum.SelectQuestion, true, SelectedCategory); } else { await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Noquestionsfound")); } IsBusy = false; }
/// <summary> /// Executes the toggle command. /// </summary> public void ExecuteToggleCommand() { if (IsBusy) { return; } if (HaccpAppSettings.SharedInstance.DeviceSettings.AllowManualTemp == 1) { IsManualEntryOn = !IsManualEntryOn; } else { Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString( "YoudonothavepermissiontoenterthetemperaturemanuallyPleasecontacttheApplicationAdministrator")); } Settings.RecordingMode = IsManualEntryOn ? RecordingMode.Manual : RecordingMode.BlueTooth; OnPropertyChanged("IsWakeButtonVisible"); }
/// <summary> /// Searchs the blue2 devices. /// </summary> public async void LoadBlue2Settings() { if (BLEManager.SharedInstance.IsConnected) { ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect"); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style; } else { PermissionStatus status = await CrossPermissions.Current.CheckPermissionStatusAsync(Plugin.Permissions.Abstractions.Permission.Location); if (status == PermissionStatus.Granted) { ConnectionStatus = BLEManager.SharedInstance.ScanTimeOutElapsed ? HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false) : HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanning"), false); } else { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); BLEManager.SharedInstance.Adapter.CancelScanning(); BLEManager.SharedInstance.ScanTimeOutElapsed = true; } Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style; DisplayBlue2Temperature = HACCPUtil.GetResourceString("ConnectBlue2Label"); LineBreakMode = LineBreakMode.TailTruncation; if (!BLEManager.SharedInstance.Adapter.IsBluetoothEnabled && !IsManualEntryOn) { // bluetooth in phone is disabled await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice")); } else if (BLEManager.SharedInstance.Adapter.IsScanning && !IsManualEntryOn) { // connection to the blue2 device is disabled await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage")); } } }
/// <summary> /// Executes the select user command. /// </summary> /// <returns>The select user command.</returns> private void ExecuteSelectLocationCommand() { if (IsBusy || !IsLoggedIn) { return; } IsBusy = true; Page.ShowProgressIndicator(); SelectLocationCommand.ChangeCanExecute(); Task.Run(() => { if (HaccpAppSettings.SharedInstance.SiteSettings.MenuId > 0 && _dataStore.CheckLocationsExist()) { Device.BeginInvokeOnMainThread(async() => { await Page.NavigateTo(PageEnum.SelectLocations, true); if (HaccpAppSettings.SharedInstance.IsWindows) { await Task.Delay(500); } IsBusy = false; Page.DismissPopup(); SelectLocationCommand.ChangeCanExecute(); }); } else { Device.BeginInvokeOnMainThread(() => { Page.DisplayAlertMessage(HACCPUtil.GetResourceString("NoLocationsFound"), HACCPUtil.GetResourceString( "NolocationsfoundPleasetapSelectChangeMenuintheWirelessTasksMenu")); IsBusy = false; Page.DismissPopup(); SelectLocationCommand.ChangeCanExecute(); }); } }); }
/// <summary> /// Checks the pending records. /// </summary> /// <returns>The pending records.</returns> private async Task CheckPendingRecords(bool showConfirmation) { try { if (HaccpAppSettings.SharedInstance.CheckPendingRecords && !HaccpAppSettings.SharedInstance.IsUploadingProgress) { var checklists = _dataStore.GetCheckListResponses(); var temperatures = _dataStore.GetItemTemperatures(); if ((checklists != null && checklists.Count != 0) || (temperatures != null && temperatures.Count != 0)) { Page.DismissPopup(); IsBusy = false; if (!_isAlertActive) { _isAlertActive = true; var result = await Page.ShowConfirmAlert(string.Empty, HACCPUtil.GetResourceString("PendingCheckmarksMessage")); await Task.Delay(500); _isAlertActive = false; if (result && HaccpAppSettings.SharedInstance.CheckPendingRecords) { await ExecuteUploadRecordCommand(showConfirmation); } } } } HaccpAppSettings.SharedInstance.CheckPendingRecords = false; } catch (Exception ex) { Debug.WriteLine("Error on CheckPendingRecords :{0}", ex.Message); } }
private void BindeAllLablelProperties() { try { ServerSettingsLabel = HACCPUtil.GetResourceString("ServerSettings"); DeviceIDLabel = HACCPUtil.GetResourceString("DeviceID"); ServerIPAddressorDomainNameLabel = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ServerIPAddressorDomainName"), true); EnterPortoptionalLabel = HACCPUtil.GetResourceString("EnterPortoptional"); AddDirectoryPathoptionalLabel = HACCPUtil.GetResourceString("AddDirectoryPathoptional"); TestServerConnectionandWebServiceLabel = HACCPUtil.GetResourceString("TestServerConnectionandWebService"); SaveandContinueLabel = HACCPUtil.GetResourceString("SaveandContinue"); SelectLanguageLabel = HACCPUtil.GetResourceString("SelectLanguage"); LanguagesLabel = HACCPUtil.GetResourceString("Languages"); NotifEYEUrlLabel = HACCPUtil.GetResourceString("NotifEyeUrl"); NotifyEYEUsernameLabel = HACCPUtil.GetResourceString("NotifEYEUserName"); NotifyEYEPasswordLabel = HACCPUtil.GetResourceString("NotifEyeUserPassword"); } catch (Exception) { // ignored } }
/// <summary> /// Method for loading ble settings for windows /// </summary> public void LoadWindowsBlue2Settings() { if (WindowsBLEManager.SharedInstance.HasAnyPairedDevice) { ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect"); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style; if (WindowsBLEManager.SharedInstance.Settings != null) { Blue2Id = WindowsBLEManager.SharedInstance.Settings.SNo; } if (WindowsBLEManager.SharedInstance.Settings != null) { var temp = WindowsBLEManager.SharedInstance.LastReading; var unit = WindowsBLEManager.SharedInstance.Settings.Scale; if (TemperatureUnit == TemperatureUnit.Celcius && unit != 0) { temp = HACCPUtil.ConvertFahrenheitToCelsius(temp); } else if (TemperatureUnit == TemperatureUnit.Fahrenheit && unit != 1) { temp = HACCPUtil.ConvertCelsiusToFahrenheit(temp); } DisplayTemperatureReading(temp, false); } } else { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style; DisplayBlue2Temperature = HACCPUtil.GetResourceString("ConnectBlue2Label"); LineBreakMode = LineBreakMode.TailTruncation; } }
/// <summary> /// Executes the NA command. /// </summary> /// <returns>The NA command.</returns> protected override async Task ExecuteNACommand() { if (IsBusy) { return; } var result = await Page.ShowConfirmAlert(string.Empty, HACCPUtil.GetResourceString("SavedNAasthetemperaturerecordingfortheitem")); if (result) { IsBusy = true; NACommand.ChangeCanExecute(); try { var location = dataStore.GetLocationById(SelectedItem.LocationId); var date = DateTime.Now; long ccpid; long.TryParse(SelectedItem.Ccpid, out ccpid); var itemTemperature = new ItemTemperature { IsManualEntry = SelectedItem.IsManualEntry ? (short)1 : (short)0, ItemID = SelectedItem.ItemId, Temperature = "0", ItemName = SelectedItem.Name, Max = SelectedItem.Max, Min = SelectedItem.Min, CorrAction = string.Empty, //SelectedCorrectiveAction != null ? SelectedCorrectiveAction.CorrActionName : "None", LocationID = SelectedItem.LocationId, Ccp = SelectedItem.Ccp, CCPID = ccpid, IsNA = 1, Hour = date.Hour.ToString(), Day = date.Day.ToString(), Minute = date.Minute.ToString(), Month = date.Month.ToString(), Sec = date.Second.ToString(), Year = date.Year.ToString(), SiteID = HaccpAppSettings.SharedInstance.SiteSettings.SiteId, UserName = HaccpAppSettings.SharedInstance.UserName, DeviceId = HaccpAppSettings.SharedInstance.DeviceId, MenuID = HaccpAppSettings.SharedInstance.SiteSettings.MenuId, TZID = HaccpAppSettings.SharedInstance.SiteSettings.TimeZoneId, BatchId = HaccpAppSettings.SharedInstance.SiteSettings.LastBatchNumber, LocName = location.Name, Blue2ID = string.Empty }; dataStore.AddTemperature(itemTemperature); SelectedItem.RecordStatus = 1; dataStore.RecordLocationItem(SelectedItem); MessagingCenter.Send(SelectedItem, HaccpConstant.RecorditemMessage); dataStore.UpdateLocationItemRecordStatus(SelectedItem.LocationId); MessagingCenter.Send(new MenuLocationId { LocationId = SelectedItem.LocationId }, HaccpConstant.MenulocationMessage); await Page.PopPage(); if (HaccpAppSettings.SharedInstance.DeviceSettings.AutoAdvance) { MessagingCenter.Send(new AutoAdvanceLocationMessage { CurrentId = SelectedItem.ItemId }, HaccpConstant.AutoadvancelocationMessage); } } catch (Exception ex) { Debug.WriteLine("Error on N/A Command {0}", ex.Message); } finally { IsBusy = false; NACommand.ChangeCanExecute(); } } }
/// <summary> /// Executes the record command. /// </summary> private async void ExecuteRecordCommand() { if (IsBusy) { return; } try { bool connected; bool gotTemperartureReading; if (HaccpAppSettings.SharedInstance.IsWindows) { gotTemperartureReading = WindowsBLEManager.SharedInstance.GotTemperartureReading; connected = WindowsBLEManager.SharedInstance.HasAnyPairedDevice; } else { connected = BLEManager.SharedInstance.IsConnected; gotTemperartureReading = BLEManager.SharedInstance.GotTemperartureReading; } if (!IsManualEntryOn && !connected) { if (HaccpAppSettings.SharedInstance.IsWindows) { return; } if (!BLEManager.SharedInstance.Adapter.IsBluetoothEnabled) { await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice")); return; } await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage")); return; } if (!IsManualEntryOn && !gotTemperartureReading) { return; } if (IsManualEntryOn && string.IsNullOrEmpty(ManualTemperature)) { await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("SpecifyTemperature")); return; } if (IsManualEntryOn) { try { double.Parse(ManualTemperature); } catch { Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Specifyavalidtemperaturevalue")); return; } } else if (DisplayBlue2Temperature == HACCPUtil.GetResourceString("ConnectBlue2Label") || DisplayBlue2Temperature == HACCPUtil.GetResourceString("Blue2SleepString") || DisplayBlue2Temperature == HACCPUtil.GetResourceString("Blue2LowString") || DisplayBlue2Temperature == HACCPUtil.GetResourceString("Blue2HighString") && DisplayBlue2Temperature == HACCPUtil.GetResourceString("Blue2BatteryString")) { await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("InvalidTemperatureAlert")); return; } var allowedMax = HaccpAppSettings.SharedInstance.DeviceSettings.TempScale == 0 ? 9999.9 : 5537.7; var allowedMin = HaccpAppSettings.SharedInstance.DeviceSettings.TempScale == 0 ? -9999.9 : -5537.7; if (IsManualEntryOn) { if (ManualEntryTemperature > allowedMax || ManualEntryTemperature < allowedMin) { await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("InvalidTemperatureAlert")); return; } } else { var lastReading = HaccpAppSettings.SharedInstance.IsWindows ? WindowsBLEManager.SharedInstance.LastReading : BLEManager.SharedInstance.LastReading; var lastunit = HaccpAppSettings.SharedInstance.IsWindows ? WindowsBLEManager.SharedInstance.LastUnit : BLEManager.SharedInstance.LastUnit; if (TemperatureUnit == TemperatureUnit.Celcius && lastunit != TemperatureUnit.Celcius) { lastReading = HACCPUtil.ConvertFahrenheitToCelsius(lastReading); } else if (TemperatureUnit == TemperatureUnit.Fahrenheit && lastunit != TemperatureUnit.Fahrenheit) { lastReading = HACCPUtil.ConvertCelsiusToFahrenheit(lastReading); } Blue2Temperature = lastReading; } IsBusy = true; RecordCommand.ChangeCanExecute(); var temp = IsManualEntryOn ? ManualEntryTemperature : Blue2Temperature; var minTemp = HACCPUtil.ConvertToDouble(SelectedItem.Min); var maxTemp = HACCPUtil.ConvertToDouble(SelectedItem.Max); var convertedTemp = temp; if (TemperatureUnit == TemperatureUnit.Celcius) { minTemp = Math.Round(HACCPUtil.ConvertFahrenheitToCelsius(minTemp)); maxTemp = Math.Round(HACCPUtil.ConvertFahrenheitToCelsius(maxTemp)); //convertedTemp = HACCPUtil.ConvertFahrenheitToCelsius (temp); } if (convertedTemp >= minTemp && convertedTemp <= maxTemp && HaccpAppSettings.SharedInstance.DeviceSettings.SkipRecordPreview) { var date = DateTime.Now; long ccpid; long.TryParse(SelectedItem.Ccpid, out ccpid); var location = dataStore.GetLocationById(SelectedItem.LocationId); if (TemperatureUnit == TemperatureUnit.Celcius) { convertedTemp = HACCPUtil.ConvertCelsiusToFahrenheit(temp); } var itemTemperature = new ItemTemperature { IsManualEntry = IsManualEntryOn ? (short)1 : (short)0, ItemID = SelectedItem.ItemId, Temperature = convertedTemp.ToString("0.0"), ItemName = SelectedItem.Name, Max = SelectedItem.Max, Min = SelectedItem.Min, CorrAction = HACCPUtil.GetResourceString("None"), LocationID = SelectedItem.LocationId, Ccp = SelectedItem.Ccp, CCPID = ccpid, IsNA = 0, Hour = date.Hour.ToString(), Day = date.Day.ToString(), Minute = date.Minute.ToString(), Month = date.Month.ToString(), Sec = date.Second.ToString(), Year = date.Year.ToString(), SiteID = HaccpAppSettings.SharedInstance.SiteSettings.SiteId, UserName = HaccpAppSettings.SharedInstance.UserName, DeviceId = HaccpAppSettings.SharedInstance.DeviceId, MenuID = HaccpAppSettings.SharedInstance.SiteSettings.MenuId, TZID = HaccpAppSettings.SharedInstance.SiteSettings.TimeZoneId, LocName = location.Name, Note = NoteText, Blue2ID = SelectedItem.Blue2Id }; dataStore.AddTemperature(itemTemperature); SelectedItem.RecordStatus = 1; dataStore.RecordLocationItem(SelectedItem); if (HaccpAppSettings.SharedInstance.IsWindows) { WindowsBLEManager.SharedInstance.ResetBlue2AutoOff(); } else { BLEManager.SharedInstance.ResetBlue2AutoOff(); } MessagingCenter.Send(SelectedItem, HaccpConstant.RecorditemMessage); dataStore.UpdateLocationItemRecordStatus(SelectedItem.LocationId); MessagingCenter.Send(new MenuLocationId { LocationId = SelectedItem.LocationId }, HaccpConstant.MenulocationMessage); MessagingCenter.Send(new RecordSaveCompleteToast(), HaccpConstant.ToastMessage); } else { SelectedItem.IsManualEntry = IsManualEntryOn; SelectedItem.RecordedTemperature = temp.ToString("0.0"); SelectedItem.TemperatureUnit = TemperatureUnit; SelectedItem.Blue2Id = IsManualEntryOn ? string.Empty : Blue2Id; SelectedItem.Note = NoteText; if (HaccpAppSettings.SharedInstance.IsWindows) { WindowsBLEManager.SharedInstance.ResetBlue2AutoOff(); } else { BLEManager.SharedInstance.ResetBlue2AutoOff(); } await Page.NavigateToWithSelectedObject(PageEnum.RecordComplete, true, SelectedItem); IsBusy = false; RecordCommand.ChangeCanExecute(); } } catch (Exception ex) { Debug.WriteLine("Error on recording {0}", ex.Message); } }
/// <summary> /// Initializes a new instance of the <see cref="HACCP.Core.ThermometerModeViewModel" /> class. /// </summary> /// <param name="page">Page.</param> public ThermometerModeViewModel(IPage page) : base(page) { AppVerison = string.Format("{0}: {1}", HACCPUtil.GetResourceString("VersionLabel"), DependencyService.Get <IInfoService>().GetAppVersion()); MessagingCenter.Subscribe <WindowsScanningStatusMessage>(this, HaccpConstant.WindowsScanningStatus, sender => { if (sender.IsScanning && ConnectionStatus != HACCPUtil.GetResourceString("ConnectionStatusDisconnect")) { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("Connecting"), false); } else { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); } }); MessagingCenter.Subscribe <WindowsBleConnectionStatusMessage>(this, HaccpConstant.BleconnectionStatus, sender => { OnPropertyChanged("IsWakeButtonVisible"); if (!WindowsBLEManager.SharedInstance.HasAnyPairedDevice) { EnableControls = false; ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style; CurrentTemperatureFormatted = HACCPUtil.GetResourceString("ConnectBlue2Label"); TemperatureUnit = TemperatureUnit.Fahrenheit; Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; MessagingCenter.Send(new Blue2PlaceHolderVisibility(true), HaccpConstant.Blue2PlaceholderVisibility); } OnPropertyChanged("CustomProbDescription"); }); MessagingCenter.Subscribe <BleConnectionStatusMessage>(this, HaccpConstant.BleconnectionStatus, async sender => { OnPropertyChanged("IsWakeButtonVisible"); if (!BLEManager.SharedInstance.Adapter.IsBluetoothEnabled) { // bluetooth in phone is disabled ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style; CurrentTemperatureFormatted = HACCPUtil.GetResourceString("ConnectBlue2Label"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; EnableControls = false; if (!isAlertActive) { isAlertActive = true; await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice")); isAlertActive = false; } } else if (!BLEManager.SharedInstance.IsConnected) { // connection to the blue2 device is disabled CurrentTemperatureFormatted = HACCPUtil.GetResourceString("ConnectBlue2Label"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style; EnableControls = false; } else if (BLEManager.SharedInstance.IsConnected) { CurrentTemperatureFormatted = string.Empty; ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect"); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style; } OnPropertyChanged("CustomProbDescription"); }); MessagingCenter.Subscribe <BLEBlue2SettingsUpdatedMessage>(this, HaccpConstant.Bleblue2SettingsUpdate, sender => { if (HaccpAppSettings.SharedInstance.IsWindows) { LoadWindowsBlue2Settings(); } else if (BLEManager.SharedInstance.Settings != null) { LoadBlue2Settings(false); } }); MessagingCenter.Subscribe <BleConnectionTimeOutMessage>(this, HaccpConstant.BleconnectionTimeout, async sender => { await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage")); }); MessagingCenter.Subscribe <BleScanCompleteMessage>(this, HaccpConstant.Blue2ScanComplete, sender => { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); }); }
/// <summary> /// Initializes a new instance of the <see /> class. /// </summary> /// <param name="page">Page.</param> /// <param name="item"></param> public RecordTempViewModel(IPage page, LocationMenuItem item) : base(page) { dataStore = new SQLiteDataStore(); SelectedItem = item; IsManualEntryOn = Settings.RecordingMode == RecordingMode.Manual; TemperatureUnit = HaccpAppSettings.SharedInstance.DeviceSettings.TempScale == 0 ? TemperatureUnit.Fahrenheit : TemperatureUnit.Celcius; var min = HACCPUtil.ConvertToDouble(SelectedItem.Min); var max = HACCPUtil.ConvertToDouble(SelectedItem.Max); MinimumTemperature = TemperatureUnit == TemperatureUnit.Celcius ? Math.Round(HACCPUtil.ConvertFahrenheitToCelsius(min)).ToString() : SelectedItem.Min; MaximumTemperature = TemperatureUnit == TemperatureUnit.Celcius ? Math.Round(HACCPUtil.ConvertFahrenheitToCelsius(max)).ToString() : SelectedItem.Max; MessagingCenter.Subscribe <WindowsScanningStatusMessage>(this, HaccpConstant.WindowsScanningStatus, sender => { if (sender.IsScanning && ConnectionStatus != HACCPUtil.GetResourceString("ConnectionStatusDisconnect")) { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("Connecting"), false); } else { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); } }); MessagingCenter.Subscribe <BleTemperatureReadingMessage>(this, HaccpConstant.BletemperatureReading, sender => { bool connected; connected = HaccpAppSettings.SharedInstance.IsWindows ? WindowsBLEManager.SharedInstance.HasAnyPairedDevice : BLEManager.SharedInstance.IsConnected; if (connected) { var msg = sender; if (msg != null) { OnPropertyChanged("IsWakeButtonVisible"); if (msg.IsSleeping) { DisplayBlue2Temperature = HACCPUtil.GetResourceString("Blue2SleepString"); LineBreakMode = LineBreakMode.TailTruncation; } else if (msg.IsHigh) { DisplayBlue2Temperature = HACCPUtil.GetResourceString("Blue2HighString"); LineBreakMode = LineBreakMode.TailTruncation; } else if (msg.IsLow) { DisplayBlue2Temperature = HACCPUtil.GetResourceString("Blue2LowString"); LineBreakMode = LineBreakMode.TailTruncation; } else if (msg.IsBatteryLow) { DisplayBlue2Temperature = HACCPUtil.GetResourceString("Blue2BatteryString"); LineBreakMode = LineBreakMode.TailTruncation; } else { var temp = msg.TempValue; var unit = msg.TempUnit; if (TemperatureUnit == TemperatureUnit.Celcius && unit != 0) { temp = HACCPUtil.ConvertFahrenheitToCelsius(temp); } else if (TemperatureUnit == TemperatureUnit.Fahrenheit && unit != 1) { temp = HACCPUtil.ConvertCelsiusToFahrenheit(temp); } DisplayTemperatureReading(temp, msg.ShouldRecord); } } } }); MessagingCenter.Subscribe <WindowsBleConnectionStatusMessage>(this, HaccpConstant.BleconnectionStatus, sender => { OnPropertyChanged("IsWakeButtonVisible"); if (!WindowsBLEManager.SharedInstance.HasAnyPairedDevice) { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style; Blue2Id = string.Empty; DisplayBlue2Temperature = HACCPUtil.GetResourceString("ConnectBlue2Label"); LineBreakMode = LineBreakMode.TailTruncation; } //else //{ // ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect"); // Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style; // DisplayBlue2Temperature = string.Empty; // LineBreakMode = LineBreakMode.NoWrap; //} }); MessagingCenter.Subscribe <BleConnectionStatusMessage>(this, HaccpConstant.BleconnectionStatus, async sender => { OnPropertyChanged("IsWakeButtonVisible"); if (BLEManager.SharedInstance.IsConnected) { ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect"); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style; DisplayBlue2Temperature = string.Empty; LineBreakMode = LineBreakMode.NoWrap; } else { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style; Blue2Id = string.Empty; DisplayBlue2Temperature = HACCPUtil.GetResourceString("ConnectBlue2Label"); LineBreakMode = LineBreakMode.TailTruncation; if (!BLEManager.SharedInstance.Adapter.IsBluetoothEnabled && !IsManualEntryOn) { // bluetooth in phone is disabled if (!isAlertActive) { isAlertActive = true; await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice")); isAlertActive = false; } } } }); MessagingCenter.Subscribe <BLEBlue2SettingsUpdatedMessage>(this, HaccpConstant.Bleblue2SettingsUpdate, sender => { if (HaccpAppSettings.SharedInstance.IsWindows && WindowsBLEManager.SharedInstance.Settings != null) { LoadWindowsBlue2Settings(); } else if (BLEManager.SharedInstance.Settings != null) { Blue2Id = BLEManager.SharedInstance.Settings.SNo; } }); MessagingCenter.Subscribe <BleConnectionTimeOutMessage>(this, HaccpConstant.BleconnectionTimeout, async sender => { await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage")); }); MessagingCenter.Subscribe <BleScanCompleteMessage>(this, HaccpConstant.Blue2ScanComplete, sender => { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); }); }
/// <summary> /// Executes the download users command. /// </summary> /// <returns>The download users command.</returns> private async Task ExecuteDownloadUsersCommand() { if (IsBusy) { return; } IsBusy = true; Page.ShowProgressIndicator(); DownloadUsersCommand.ChangeCanExecute(); try { if (haccpService.IsConnected() == false) { IsBusy = false; Page.DismissPopup(); Page.DisplayAlertMessage(HACCPUtil.GetResourceString("EnableNetworkConnection"), HACCPUtil.GetResourceString( "YourequireanactiveInternetconnectiontoperformsomefunctionsWerecommendthatyouenableWiFiforthispurposeDatachargesmayapplyifWiFiisnotenabled")); return; } if (HaccpAppSettings.SharedInstance.SiteSettings.SiteId <= 1) { IsBusy = false; Page.DismissPopup(); await Page.ShowAlert(HACCPUtil.GetResourceString("NoSiteInformationFound"), HACCPUtil.GetResourceString( "NositeinformationsfoundPleasetapUpdateSiteandSettingsintheWirelessTasksmenu")); return; } if (!pendingCheckListToUpload && !pendingTemperatureRecordsToUpload) { var res = await haccpService.DownloadUsers(); if (res.IsSuccess) { IsBusy = false; Page.DismissPopup(); Page.DisplayAlertMessage("", HACCPUtil.GetResourceString("UserListupdatedsuccessfully")); } else { IsBusy = false; Page.DismissPopup(); Page.DisplayAlertMessage("", res.Message); } } else { IsBusy = false; Page.DismissPopup(); await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("UploadRecordsPendingOnUpdateUsersMessage")); } } catch (Exception ex) { Debug.WriteLine("Ooops! Something went wrong while fetch users from server. Exception: {0}", ex); } finally { IsBusy = false; Page.DismissPopup(); DownloadUsersCommand.ChangeCanExecute(); } }
/// <summary> /// Loads the blue2 settings. /// </summary> public async void LoadBlue2Settings() { if (BLEManager.SharedInstance.IsConnected) { EnableControls = true; ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect"); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style; if (BLEManager.SharedInstance.Settings != null) { var settings = BLEManager.SharedInstance.Settings; Blue2Id = settings.SNo; if (!string.IsNullOrEmpty(Blue2Id)) { Blue2IdVisible = true; } _measurementTiming = settings.MeasurementLevel; Timing = string.Format("{0} {1}", _measurementTiming, HACCPUtil.GetResourceString("sec")); IsTimingPlusEnabled = IsTimingMinusEnabled = true; if (_measurementTiming == 5) { IsTimingPlusEnabled = false; } else if (_measurementTiming == 1) { IsTimingMinusEnabled = false; } TemperatureUnit = settings.Scale == 0 ? TemperatureUnit.Celcius : TemperatureUnit.Fahrenheit; _autoOffInterval = settings.AutoOff; Interval = string.Format("{0} {1}", _autoOffInterval, HACCPUtil.GetResourceString("Minute")); IsIntervalPlusEnabled = IsIntervalMinusEnabled = true; if (_autoOffInterval == 30) { IsIntervalPlusEnabled = false; } else if (_autoOffInterval == 1) { IsIntervalMinusEnabled = false; } _sleepTime = settings.Sleep; Sleep = string.Format("{0} {1}", _sleepTime, HACCPUtil.GetResourceString("Minute")); IsSleepPlusEnabled = IsSleepMinusEnabled = true; if (_sleepTime == 30) { IsSleepPlusEnabled = false; } else if (_sleepTime == 1) { IsSleepMinusEnabled = false; } CustomProbDescription = settings.Prob; MessagingCenter.Send(new Blue2PlaceHolderVisibility(string.IsNullOrEmpty(CustomProbDescription)), HaccpConstant.Blue2PlaceholderVisibility); } } else { EnableControls = false; PermissionStatus status = await CrossPermissions.Current.CheckPermissionStatusAsync(Plugin.Permissions.Abstractions.Permission.Location); if (status == PermissionStatus.Granted) { ConnectionStatus = BLEManager.SharedInstance.ScanTimeOutElapsed ? HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false) : HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanning"), false); } else { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); BLEManager.SharedInstance.Adapter.CancelScanning(); BLEManager.SharedInstance.ScanTimeOutElapsed = true; } Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style; if (!BLEManager.SharedInstance.Adapter.IsBluetoothEnabled) { // bluetooth in phone is disabled CustomProbDescription = string.Empty; MessagingCenter.Send(new Blue2PlaceHolderVisibility(true), HaccpConstant.Blue2PlaceholderVisibility); await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice")); } else { // connection to the blue2 device is disabled Blue2Id = string.Empty; Blue2IdVisible = false; CustomProbDescription = string.Empty; MessagingCenter.Send(new Blue2PlaceHolderVisibility(true), HaccpConstant.Blue2PlaceholderVisibility); if (BLEManager.SharedInstance.Adapter.IsScanning) { await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage")); } } } }
/// <summary> /// Blue2Settings ViewModel /// </summary> /// <param name="page"></param> public Blue2SettingsViewModel(IPage page) : base(page) { _probeDescriptionPlaceHolder = HACCPUtil.GetResourceString("EnterCustomProbeDescription"); TemperatureUnit = TemperatureUnit.Fahrenheit; MessagingCenter.Subscribe <WindowsScanningStatusMessage>(this, HaccpConstant.WindowsScanningStatus, sender => { if (sender.IsScanning && ConnectionStatus != HACCPUtil.GetResourceString("ConnectionStatusDisconnect")) { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("Connecting"), false); } else { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); } }); MessagingCenter.Subscribe <WindowsBleConnectionStatusMessage>(this, HaccpConstant.BleconnectionStatus, sender => { if (!WindowsBLEManager.SharedInstance.HasAnyPairedDevice) { Blue2Id = string.Empty; Blue2IdVisible = false; EnableControls = false; CustomProbDescription = string.Empty; ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style; IsTimingPlusEnabled = IsTimingMinusEnabled = IsIntervalPlusEnabled = IsIntervalMinusEnabled = IsSleepPlusEnabled = IsSleepMinusEnabled = false; TemperatureUnit = TemperatureUnit.Fahrenheit; MessagingCenter.Send(new Blue2PlaceHolderVisibility(true), HaccpConstant.Blue2PlaceholderVisibility); } }); MessagingCenter.Subscribe <BleConnectionStatusMessage>(this, HaccpConstant.BleconnectionStatus, async sender => { if (!BLEManager.SharedInstance.Adapter.IsBluetoothEnabled) { // bluetooth in phone is disabled Blue2IdVisible = false; Blue2Id = string.Empty; EnableControls = false; CustomProbDescription = string.Empty; ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style; IsTimingPlusEnabled = IsTimingMinusEnabled = IsIntervalPlusEnabled = IsIntervalMinusEnabled = IsSleepPlusEnabled = IsSleepMinusEnabled = false; TemperatureUnit = TemperatureUnit.Fahrenheit; MessagingCenter.Send(new Blue2PlaceHolderVisibility(true), HaccpConstant.Blue2PlaceholderVisibility); if (!_isAlertActive) { _isAlertActive = true; await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice")); _isAlertActive = false; } } else if (!BLEManager.SharedInstance.IsConnected) { // connection to the blue2 device is disabled Blue2Id = string.Empty; Blue2IdVisible = false; EnableControls = false; CustomProbDescription = string.Empty; ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style; IsTimingPlusEnabled = IsTimingMinusEnabled = IsIntervalPlusEnabled = IsIntervalMinusEnabled = IsSleepPlusEnabled = IsSleepMinusEnabled = false; TemperatureUnit = TemperatureUnit.Fahrenheit; MessagingCenter.Send(new Blue2PlaceHolderVisibility(true), HaccpConstant.Blue2PlaceholderVisibility); } else if (BLEManager.SharedInstance.IsConnected) { ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect"); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style; } }); MessagingCenter.Subscribe <BLEBlue2SettingsUpdatedMessage>(this, HaccpConstant.Bleblue2SettingsUpdate, sender => { if (HaccpAppSettings.SharedInstance.IsWindows) { LoadWindowsBlue2Settings(); } else if (BLEManager.SharedInstance.Settings != null) { LoadBlue2Settings(); } }); MessagingCenter.Subscribe <BleConnectionTimeOutMessage>(this, HaccpConstant.BleconnectionTimeout, async sender => { await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage")); }); MessagingCenter.Subscribe <BleScanCompleteMessage>(this, HaccpConstant.Blue2ScanComplete, sender => { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); }); }
/// <summary> /// Executes the upload record command. /// </summary> private async Task ExecuteUploadRecordCommand(bool showConfirmation) { if (IsBusy) { return; } IsBusy = true; try { if (_haccpService.IsConnected() == false) { Page.DisplayAlertMessage(HACCPUtil.GetResourceString("EnableNetworkConnection"), HACCPUtil.GetResourceString( "YourequireanactiveInternetconnectiontoperformsomefunctionsWerecommendthatyouenableWiFiforthispurposeDatachargesmayapplyifWiFiisnotenabled")); return; } Page.ShowUploadProgress(); UploadRecordCommand.ChangeCanExecute(); if (HaccpAppSettings.SharedInstance.SiteSettings.SiteId > 0) { var proceedUpload = false; //Getting check lists and temperatures var checklists = _dataStore.GetCheckListResponses(); var temperatures = _dataStore.GetItemTemperatures(); if ((checklists == null || checklists.Count == 0) && (temperatures == null || temperatures.Count == 0)) { IsBusy = false; Page.DismissUploadProgress(); await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Norecordsfoundtoupload")); } else if (showConfirmation && await Page.ShowConfirmAlert(HACCPUtil.GetResourceString("UploadRecords"), HACCPUtil.GetResourceString( "Alltherecordswillbeuploadedandthecheckmarkswillbecleared"))) { //confirmation alert proceedUpload = true; } else if (!showConfirmation) { proceedUpload = true; } if (proceedUpload) { if (checklists != null && (checklists.Count > 0 || temperatures.Count > 0)) { //Calling upload records method var response = await _haccpService.UploadRecords(checklists, temperatures); if (response.IsSuccess) { IsBusy = false; Page.DismissUploadProgress(); await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString( "UploadedalltherecordstoHACCPEnterpriseapplicationsuccessfully")); MessagingCenter.Send(new UploadRecordRefreshMessage(), HaccpConstant.UploadRecordRefresh); } else if (!string.IsNullOrEmpty(response.Message)) { IsBusy = false; Page.DismissUploadProgress(); await Page.ShowAlert(string.Empty, response.Message); } else { IsBusy = false; Page.DismissUploadProgress(); await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString( "AnerroroccurredwhileuploadingtherecordsPleasetryagainlater")); } } else { IsBusy = false; Page.DismissUploadProgress(); await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Norecordsfoundtoupload")); } } } else { IsBusy = false; Page.DismissUploadProgress(); await Page.ShowAlert(HACCPUtil.GetResourceString("NoSiteInformationFound"), HACCPUtil.GetResourceString( "NositeinformationsfoundPleasetapUpdateSiteandSettingsintheWirelessTasksmenu")); } } catch (Exception ex) { Debug.WriteLine("Ooops! Something went wrong while select menu. Exception: {0}", ex); } finally { IsBusy = false; Page.DismissUploadProgress(); UploadRecordCommand.ChangeCanExecute(); } }
/// <summary> /// Method for loading ble settings for windows /// </summary> public void LoadWindowsBlue2Settings() { if (WindowsBLEManager.SharedInstance.HasAnyPairedDevice) { EnableControls = true; ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect"); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style; if (WindowsBLEManager.SharedInstance.Settings != null) { var settings = WindowsBLEManager.SharedInstance.Settings; BatteryLevel = settings.BatteryLevel; ShowBluetoothIcon = true; TemperatureUnit = settings.Scale == 0 ? TemperatureUnit.Celcius : TemperatureUnit.Fahrenheit; if (WindowsBLEManager.SharedInstance.IsSleeping) { CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2SleepString"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; } else if (WindowsBLEManager.SharedInstance.IsHigh) { CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2HighString"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; } else if (WindowsBLEManager.SharedInstance.IsLow) { CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2LowString"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; } else if (WindowsBLEManager.SharedInstance.IsBatteryLow) { CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2BatteryString"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; } else { DisplayTemperatureReading(WindowsBLEManager.SharedInstance.LastReading); } } } else { EnableControls = false; ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style; CurrentTemperatureFormatted = HACCPUtil.GetResourceString("ConnectBlue2Label"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; //if (!BLEManager.SharedInstance.adapter.IsBluetoothEnabled) //{ // bluetooth in phone is disabled // CustomProbDescription = string.Empty; // MessagingCenter.Send<Blue2PlaceHolderVisibility>(new Blue2PlaceHolderVisibility(true), HACCPConstant.BLUE2_PLACEHOLDER_VISIBILITY); // await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice")); // } // else // { // connection to the blue2 device is disabled // CustomProbDescription = string.Empty; MessagingCenter.Send(new Blue2PlaceHolderVisibility(true), HaccpConstant.Blue2PlaceholderVisibility); //if (BLEManager.SharedInstance.adapter.IsScanning) // await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage")); // } } OnPropertyChanged("CustomProbDescription"); }
/// <summary> /// Initializes a new instance of the <see cref="HACCP.Core.LocationItemVIewModel" /> class. /// </summary> /// <param name="page">Page.</param> /// <param name="menuLocation"></param> public LocationItemVIewModel(IPage page, MenuLocation menuLocation) : base(page) { ListCompletedItems = false; // Set default value to ListCompletedItems Title = HACCPUtil.GetResourceString("SelectItem"); NoItemFoundText = HACCPUtil.GetResourceString("Noitemsfound"); _dataStore = new SQLiteDataStore(); AutoBack = false; _location = menuLocation; LocationName = menuLocation.Name; LocationId = menuLocation.LocationId; var items = _dataStore.GetItems(LocationId, ListCompletedItems); HasItems = items.Any(); locationitems = Items = new ObservableCollection <LocationMenuItem>(items); MessagingCenter.Subscribe <CleanUpMessage>(this, HaccpConstant.CleanupMessage, sender => { MessagingCenter.Unsubscribe <LocationMenuItem>(this, HaccpConstant.RecorditemMessage); MessagingCenter.Unsubscribe <AutoAdvanceLocationMessage>(this, HaccpConstant.AutoadvancelocationMessage); MessagingCenter.Unsubscribe <CleanUpMessage>(this, HaccpConstant.CleanupMessage); }); //MessagingCenter.Unsubscribe<LocationMenuItem> (this, "sample"); MessagingCenter.Subscribe <LocationMenuItem>(this, HaccpConstant.RecorditemMessage, sender => { var selectedItem = sender; if (selectedItem == null) { return; } var first = Items.FirstOrDefault(x => x.ItemId == selectedItem.ItemId); if (first != null) { first.RecordStatus = 1; } }); MessagingCenter.Subscribe <AutoAdvanceLocationMessage>(this, HaccpConstant.AutoadvancelocationMessage, sender => { var message = sender; if (message != null) { var currentItem = Items.FirstOrDefault(x => x.ItemId == message.CurrentId); if (currentItem != null) { var index = Items.IndexOf(currentItem); if (Items.Count - 1 > index) { // AutoBack = index + 2 == Items.Count; IsBackNavigation = false; page.NavigateToWithSelectedObject(PageEnum.RecordItem, true, Items[index + 1]); } else { AutoBack = true; if (!HaccpAppSettings.SharedInstance.IsWindows) { page.PopPage(); // it won't work in windows.. } } } } }); MessagingCenter.Subscribe <UploadRecordRefreshMessage>(this, HaccpConstant.UploadRecordRefresh, sender => { var list = _dataStore.GetItems(LocationId, ListCompletedItems); HasItems = list.Any(); Items = new ObservableCollection <LocationMenuItem>(list); IsReviewItemVisible = false; }); }
/// <summary> /// Executes the change menu command. /// </summary> /// <returns>The change menu command.</returns> private async Task ExecuteChangeMenuCommand() { if (IsBusy) { return; } IsBusy = true; ChangeMenuCommand.ChangeCanExecute(); Page.ShowProgressIndicator(); try { if (haccpService.IsConnected() == false) { IsBusy = false; Page.DismissPopup(); Page.DisplayAlertMessage(HACCPUtil.GetResourceString("EnableNetworkConnection"), HACCPUtil.GetResourceString( "YourequireanactiveInternetconnectiontoperformsomefunctionsWerecommendthatyouenableWiFiforthispurposeDatachargesmayapplyifWiFiisnotenabled")); return; } if (HaccpAppSettings.SharedInstance.SiteSettings.SiteId > 0) { var res = await haccpService.DownloadMenus(); if (res.IsSuccess) { var menuLists = (IList <Menu>)res.Results; if (menuLists.Count > 0) { if (!pendingTemperatureRecordsToUpload) { object isMenu = true; isBackNavigation = false; await Page.NavigateToWithSelectedObject(PageEnum.MenuChecklist, true, isMenu); } else { IsBusy = false; Page.DismissPopup(); await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString( "CannotchangetheMenuasrecordsarependingtobeuploadedTouploadtherecordsselectUploadRecordsundertheWirelessTasksmenu")); } } } else { IsBusy = false; Page.DismissPopup(); await Page.ShowAlert("", res.Message); } } else { IsBusy = false; Page.DismissPopup(); await Page.ShowAlert(HACCPUtil.GetResourceString("NoSiteInformationFound"), HACCPUtil.GetResourceString( "NositeinformationsfoundPleasetapUpdateSiteandSettingsintheWirelessTasksmenu")); } } catch (Exception ex) { Debug.WriteLine("Ooops! Something went wrong while select menu. Exception: {0}", ex); } finally { IsBusy = false; Page.DismissPopup(); ChangeMenuCommand.ChangeCanExecute(); } }
/// <summary> /// Executes the test connection command. /// </summary> /// <returns>The test connection command.</returns> private async Task ExecuteTestConnectionCommand() { if (IsBusy) { return; } IsBusy = true; Page.ShowProgressIndicator(); TestConnectionCommand.ChangeCanExecute(); try { if (haccpService.IsConnected()) { bool isConnected; if (HaccpAppSettings.SharedInstance.IsWindows) { isConnected = await haccpService.IsWsdlAccess(HaccpAppSettings.SharedInstance.SiteSettings.ServerAddress, HaccpAppSettings.SharedInstance.SiteSettings.ServerPort, HaccpAppSettings.SharedInstance.SiteSettings.ServerDirectory); } else { isConnected = await haccpService.IsRemoteReachable( HaccpAppSettings.SharedInstance.SiteSettings.ServerAddress, HaccpAppSettings.SharedInstance.SiteSettings.ServerPort); } if (isConnected == false) { IsBusy = false; Page.DismissPopup(); Page.DisplayAlertMessage(HACCPUtil.GetResourceString("ConnectionTimeout"), HACCPUtil.GetResourceString( "UnabletoconnecttotheserverPleaseverifyconnectionsettingsandtryagain")); } else { isConnected = await haccpService.IsWsdlAccess(HaccpAppSettings.SharedInstance.SiteSettings.ServerAddress, HaccpAppSettings.SharedInstance.SiteSettings.ServerPort, HaccpAppSettings.SharedInstance.SiteSettings.ServerDirectory); if (isConnected == false) { IsBusy = false; Page.DismissPopup(); Page.DisplayAlertMessage(HACCPUtil.GetResourceString("NoWebService"), HACCPUtil.GetResourceString( "UnabletofindthewebservicePleaseverifyconnectionsettingsandtryagain")); } } } else { IsBusy = false; Page.DismissPopup(); Page.DisplayAlertMessage(HACCPUtil.GetResourceString("EnableNetworkConnection"), HACCPUtil.GetResourceString( "YourequireanactiveInternetconnectiontoperformsomefunctionsWerecommendthatyouenableWiFiforthispurposeDatachargesmayapplyifWiFiisnotenabled")); } } catch (Exception ex) { Debug.WriteLine("Ooops! Something went wrong while test connection. Exception: {0}", ex); } finally { IsBusy = false; Page.DismissPopup(); TestConnectionCommand.ChangeCanExecute(); } }
/// <summary> /// Executes the save command. /// </summary> /// <returns>The save command.</returns> protected override async Task ExecuteSaveCommand() { try { IsBusy = true; SaveCommand.ChangeCanExecute(); HACCPUtil.ConvertToDouble(SelectedItem.Min); HACCPUtil.ConvertToDouble(SelectedItem.Max); var temp = TemperatureValue; if (TemperatureUnit == TemperatureUnit.Celcius) { temp = HACCPUtil.ConvertCelsiusToFahrenheit(TemperatureValue); } if ( await Page.ShowConfirmAlert(HACCPUtil.GetResourceString("SaveRecord"), string.Format( HACCPUtil.GetResourceString("RecordedTemperature0Correctiveactiontaken1User2"), Temperature + HaccpConstant.NewlineCharacter, SelectedCorrectiveAction != null ? SelectedCorrectiveAction.CorrActionName + HaccpConstant.NewlineCharacter : HACCPUtil.GetResourceString("None") + HaccpConstant.NewlineCharacter, HaccpAppSettings.SharedInstance.UserName))) { //if (itemTemperature == null) { var date = DateTime.Now; long ccpid; long.TryParse(SelectedItem.Ccpid, out ccpid); var location = dataStore.GetLocationById(SelectedItem.LocationId); itemTemperature = new ItemTemperature { IsManualEntry = SelectedItem.IsManualEntry ? (short)1 : (short)0, ItemID = SelectedItem.ItemId, Temperature = temp.ToString("0.0"), ItemName = SelectedItem.Name, Max = SelectedItem.Max, Min = SelectedItem.Min, CorrAction = SelectedCorrectiveAction != null ? SelectedCorrectiveAction.CorrActionName : HACCPUtil.GetResourceString("None"), LocationID = SelectedItem.LocationId, Ccp = SelectedItem.Ccp, CCPID = ccpid, IsNA = 0, Hour = date.Hour.ToString(), Day = date.Day.ToString(), Minute = date.Minute.ToString(), Month = date.Month.ToString(), Sec = date.Second.ToString(), Year = date.Year.ToString(), SiteID = HaccpAppSettings.SharedInstance.SiteSettings.SiteId, UserName = HaccpAppSettings.SharedInstance.UserName, DeviceId = HaccpAppSettings.SharedInstance.DeviceId, MenuID = HaccpAppSettings.SharedInstance.SiteSettings.MenuId, TZID = HaccpAppSettings.SharedInstance.SiteSettings.TimeZoneId, //BatchId = HACCPAppSettings.SharedInstance.SiteSettings.LastBatchNumber, LocName = location.Name, Note = !string.IsNullOrEmpty(NoteText) && !string.IsNullOrWhiteSpace(NoteText) ? NoteText.Trim() : string.Empty, Blue2ID = SelectedItem.Blue2Id }; dataStore.AddTemperature(itemTemperature); SelectedItem.RecordStatus = 1; dataStore.RecordLocationItem(SelectedItem); MessagingCenter.Send(SelectedItem, HaccpConstant.RecorditemMessage); dataStore.UpdateLocationItemRecordStatus(SelectedItem.LocationId); MessagingCenter.Send(new MenuLocationId { LocationId = SelectedItem.LocationId }, HaccpConstant.MenulocationMessage); if (HaccpAppSettings.SharedInstance.IsWindows) { await Page.PopPages(2); } else { Page.RemoveRecordItemPage(); await Page.PopPage(); } if (HaccpAppSettings.SharedInstance.DeviceSettings.AutoAdvance) { MessagingCenter.Send(new AutoAdvanceLocationMessage { CurrentId = SelectedItem.ItemId }, HaccpConstant.AutoadvancelocationMessage); } } } catch (Exception ex) { Debug.WriteLine("Error occured while saving temperature {0}", ex.Message); } finally { IsBusy = false; SaveCommand.ChangeCanExecute(); } }
/// <summary> /// Selects the language and download strings. /// </summary> /// <returns>The language and download strings.</returns> /// <param name="selectedLanguage">Selected language.</param> public async Task SelectLanguageAndDownloadStrings(Language selectedLanguage) { if (IsBusy) { return; } IsBusy = true; try { if (selectedLanguage.LanguageId == HaccpAppSettings.SharedInstance.LanguageId) { IsBusy = false; return; } if ( await Page.ShowConfirmAlert(string.Empty, string.Format( HACCPUtil.GetResourceString("Areyousureyouwanttoswitchthelanguageofthisappto0"), selectedLanguage.LanguageName))) { IsBusy = true; Page.ShowProgressIndicator(); var response = await service.SaveLanguageStrings(selectedLanguage.LanguageId); if (response != null && response.IsSuccess) { foreach (var lng in LanguageList) { lng.IsSelected = lng.LanguageId == selectedLanguage.LanguageId; } HaccpAppSettings.SharedInstance.LanguageId = selectedLanguage.LanguageId; Settings.CurrentLanguageID = selectedLanguage.LanguageId; try { await Task.Delay(5000); //HACCPAppSettings.SharedInstance.ResourceString = DependencyService.Get<IResourceFileHelper> ().LoadResource ("ResourceFile.xml"); if (HaccpAppSettings.SharedInstance.IsWindows) { await Task.Run( async() => { HaccpAppSettings.SharedInstance.ResourceString = await DependencyService.Get <IResourceFileHelper>() .LoadResourceAsync("ResourceFile.xml"); }); } else { try { HaccpAppSettings.SharedInstance.ResourceString = DependencyService.Get <IResourceFileHelper>().LoadResource("ResourceFile.xml"); } catch (Exception ex) { Debug.WriteLine(ex.Message); } } } catch (Exception) { // ignored } IsLanguageListVisible = false; if (!string.IsNullOrEmpty(HaccpAppSettings.SharedInstance.SiteSettings.ServerAddress)) { //if (HaccpAppSettings.SharedInstance.IsWindows) //{ // var style = Application.Current.Resources["WindowsListScrollHelpGridStyle"] as Style; // if (style != null) // { // style.Setters.RemoveAt(0); // style.Setters.Insert(0, // new Setter {Property = VisualElement.HeightRequestProperty, Value = 90}); // } // var recordstyle = Application.Current.Resources["WindowsScrollHelpGridStyle"] as Style; // if (recordstyle != null) // { // recordstyle.Setters.RemoveAt(0); // recordstyle.Setters.Insert(0, // new Setter {Property = VisualElement.HeightRequestProperty, Value = 85}); // } // // related to scroll issue fix after changing language //} Page.UnSubscribeMessage(); HaccpAppSettings.SharedInstance.IsLanguageChanged = true; Page.LoadHomePage(); } else { BindeAllLablelProperties(); } IsBusy = false; Page.DismissPopup(); } } } catch (Exception ex) { IsBusy = false; Page.DismissPopup(); Debug.WriteLine("Ooops! Something went wrong ShowSelectMenuChecklistAlert. Exception: {0}", ex); } finally { IsBusy = false; Page.DismissPopup(); IsLanguageListVisible = false; if (HaccpAppSettings.SharedInstance.IsWindows) { BindeAllLablelProperties(); } } }
/// <summary> /// Loads the blue2 settings. /// </summary> public async void LoadBlue2Settings(bool tempReady) { if (BLEManager.SharedInstance.IsConnected) { EnableControls = true; ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect"); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style; if (BLEManager.SharedInstance.Settings != null) { var settings = BLEManager.SharedInstance.Settings; BatteryLevel = settings.BatteryLevel; ShowBluetoothIcon = true; TemperatureUnit = settings.Scale == 0 ? TemperatureUnit.Celcius : TemperatureUnit.Fahrenheit; if (tempReady) { if (BLEManager.SharedInstance.IsSleeping) { CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2SleepString"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; } else if (BLEManager.SharedInstance.IsHigh) { CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2HighString"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; } else if (BLEManager.SharedInstance.IsLow) { CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2LowString"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; } else if (BLEManager.SharedInstance.IsBatteryLow) { CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2BatteryString"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; } else { DisplayTemperatureReading(BLEManager.SharedInstance.LastReading); } } } } else { EnableControls = false; PermissionStatus status = await CrossPermissions.Current.CheckPermissionStatusAsync(Plugin.Permissions.Abstractions.Permission.Location); if (status == PermissionStatus.Granted) { ConnectionStatus = BLEManager.SharedInstance.ScanTimeOutElapsed ? HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false) : HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanning"), false); } else { ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); BLEManager.SharedInstance.Adapter.CancelScanning(); BLEManager.SharedInstance.ScanTimeOutElapsed = true; } Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style; ShowBluetoothIcon = false; CurrentTemperatureFormatted = HACCPUtil.GetResourceString("ConnectBlue2Label"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; if (!BLEManager.SharedInstance.Adapter.IsBluetoothEnabled) { // bluetooth in phone is disabled await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice")); } else if (BLEManager.SharedInstance.Adapter.IsScanning) { // connection to the blue2 device is disabled await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage")); } } OnPropertyChanged("CustomProbDescription"); }
/// <summary> /// Method for loading ble settings for windows /// </summary> public void LoadWindowsBlue2Settings() { if (WindowsBLEManager.SharedInstance.HasAnyPairedDevice) { ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect"); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style; var settings = WindowsBLEManager.SharedInstance.Settings; if (settings != null) { EnableControls = true; Blue2Id = settings.SNo; if (!string.IsNullOrEmpty(Blue2Id)) { Blue2IdVisible = true; } _measurementTiming = settings.MeasurementLevel; Timing = string.Format("{0} {1}", _measurementTiming, HACCPUtil.GetResourceString("sec")); IsTimingPlusEnabled = IsTimingMinusEnabled = true; if (_measurementTiming == 5) { IsTimingPlusEnabled = false; } else if (_measurementTiming == 1) { IsTimingMinusEnabled = false; } TemperatureUnit = settings.Scale == 0 ? TemperatureUnit.Celcius : TemperatureUnit.Fahrenheit; _autoOffInterval = settings.AutoOff; Interval = string.Format("{0} {1}", _autoOffInterval, HACCPUtil.GetResourceString("Minute")); IsIntervalPlusEnabled = IsIntervalMinusEnabled = true; if (_autoOffInterval == 30) { IsIntervalPlusEnabled = false; } else if (_autoOffInterval == 1) { IsIntervalMinusEnabled = false; } _sleepTime = settings.Sleep; Sleep = string.Format("{0} {1}", _sleepTime, HACCPUtil.GetResourceString("Minute")); IsSleepPlusEnabled = IsSleepMinusEnabled = true; if (_sleepTime == 30) { IsSleepPlusEnabled = false; } else if (_sleepTime == 1) { IsSleepMinusEnabled = false; } CustomProbDescription = settings.Prob; MessagingCenter.Send(new Blue2PlaceHolderVisibility(string.IsNullOrEmpty(CustomProbDescription)), HaccpConstant.Blue2PlaceholderVisibility); } else { EnableControls = false; } } else { EnableControls = false; ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false); Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style; //if (!BLEManager.SharedInstance.adapter.IsBluetoothEnabled) //{ // bluetooth in phone is disabled // CustomProbDescription = string.Empty; // MessagingCenter.Send<Blue2PlaceHolderVisibility>(new Blue2PlaceHolderVisibility(true), HACCPConstant.BLUE2_PLACEHOLDER_VISIBILITY); // await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice")); // } // else // { // connection to the blue2 device is disabled Blue2Id = string.Empty; Blue2IdVisible = false; CustomProbDescription = string.Empty; MessagingCenter.Send(new Blue2PlaceHolderVisibility(true), HaccpConstant.Blue2PlaceholderVisibility); //if (BLEManager.SharedInstance.adapter.IsScanning) // await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage")); // } } }
public override void OnViewAppearing() { base.OnViewAppearing(); ShowBluetoothIcon = false; if (HaccpAppSettings.SharedInstance.IsWindows) { LoadWindowsBlue2Settings(); } else { LoadBlue2Settings(true); } MessagingCenter.Subscribe <BleTemperatureReadingMessage>(this, HaccpConstant.BletemperatureReading, sender => { OnPropertyChanged("IsWakeButtonVisible"); bool connected; connected = HaccpAppSettings.SharedInstance.IsWindows ? WindowsBLEManager.SharedInstance.HasAnyPairedDevice : BLEManager.SharedInstance.IsConnected; if (connected) { var msg = sender; if (msg != null) { bool isbatteryLow; double lastReading; if (HaccpAppSettings.SharedInstance.IsWindows) { isbatteryLow = WindowsBLEManager.SharedInstance.IsBatteryLow; lastReading = WindowsBLEManager.SharedInstance.LastReading; } else { isbatteryLow = BLEManager.SharedInstance.IsBatteryLow; lastReading = BLEManager.SharedInstance.LastReading; } if (msg.IsSleeping) { CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2SleepString"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; } else if (msg.IsHigh) { CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2HighString"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; } else if (msg.IsLow) { CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2LowString"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; } else if (isbatteryLow) { CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2BatteryString"); Blue2TempFontSize = 22; LineBreakMode = LineBreakMode.TailTruncation; } else { DisplayTemperatureReading(lastReading); } } } }); }
/// <summary> /// Shows the not implemented. /// </summary> protected void ShowNotImplemented() { Page.DisplayAlertMessage(HACCPUtil.GetResourceString("NotImplemented"), ""); }
/// <summary> /// Executes the update site command. /// </summary> /// <returns>The update site command.</returns> private async Task ExecuteUpdateSiteCommand() { if (IsBusy) { return; } IsBusy = true; UpdateSiteCommand.ChangeCanExecute(); try { if (haccpService.IsConnected() == false) { Page.DismissPopup(); IsBusy = false; Page.DisplayAlertMessage(HACCPUtil.GetResourceString("EnableNetworkConnection"), HACCPUtil.GetResourceString( "YourequireanactiveInternetconnectiontoperformsomefunctionsWerecommendthatyouenableWiFiforthispurposeDatachargesmayapplyifWiFiisnotenabled")); return; } if (!pendingCheckListToUpload && !pendingTemperatureRecordsToUpload) { Page.ShowProgressIndicator(); var res = await haccpService.DownloadSiteAndSettings(false); if (Device.OS == TargetPlatform.WinPhone || Device.OS == TargetPlatform.WinPhone) { await Task.Delay(500); } if (res.IsSuccess) { Page.DismissPopup(); IsBusy = false; Page.DisplayAlertMessage("", HACCPUtil.GetResourceString("SiteandSettingsupdatedsuccessfully")); } else { Page.DismissPopup(); IsBusy = false; Page.DisplayAlertMessage("", res.Message); } } else { IsBusy = false; Page.DismissPopup(); await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("UploadRecordsPendingOnUpdateSiteSettingsMessage")); } } catch (Exception ex) { Debug.WriteLine("Ooops! Something went wrong while fetch users from server. Exception: {0}", ex); } finally { IsBusy = false; Page.DismissPopup(); UpdateSiteCommand.ChangeCanExecute(); } }