private void SaveSettingMesureBackgroundTask_Completed(object sender, EventArgs e) { var mesureBackgroundTask = MeasureBackgroundTask.GetInstance; mesureBackgroundTask.Completed -= SaveSettingMesureBackgroundTask_Completed; try { var newUserSettings = new UserSettings(); newUserSettings.isScreenSaverEnable = IsScreenSaverEnable; newUserSettings.isSigFoxComEnable = IsSigFoxComEnable; newUserSettings.isSleepModeEnable = IsSleepModeEnable; newUserSettings.isTempHumiditySensorEnable = IsTempHumiditySensorEnable; newUserSettings.isDiagnosticModeEnable = IsDiagnosticModeEnable; newUserSettings.isDebugLedEnable = IsDebugLedEnable; newUserSettings.measureFrequency = MeasureFrequency; newUserSettings.productionSiteId = ProductionSiteId; newUserSettings.hubMessageAPI = HubMessageAPI; var taskUserSync = Task.Run(async() => { await userSettingsModel.SyncUserSettings(newUserSettings); }); taskUserSync.Wait(); mesureBackgroundTask.Run(); } catch (Exception ex) { logModel.AppendLog(Log.CreateErrorLog("Exception on Save Settings", ex)); } finally { logModel.AppendLog(Log.CreateLog("Settings saved", LogType.Information)); IsBusy = false; } }
private MeasureBackgroundTask() { logModel.AppendLog(Log.CreateLog("Measure Service starting...", Log.LogType.System)); userSettings = new UserSettings(); var taskUser = Task.Run(async() => { userSettings = await userSettingsModel.GetUserSettingsAsync(); }); taskUser.Wait(); logModel.AppendLog(Log.CreateLog("UserSettings retreived", Log.LogType.System)); //Disable Diagnostic Mode on restart if (userSettings.isDiagnosticModeEnable) { userSettings.isDiagnosticModeEnable = false; var taskUserSync = Task.Run(async() => { await userSettingsModel.SyncUserSettings(userSettings); }); taskUserSync.Wait(); } var taskTethering = Task.Run(async() => { try { var connectedProfile = NetworkInformation.GetInternetConnectionProfile(); if (connectedProfile != null) { logModel.AppendLog(Log.CreateLog(String.Format("Connected Profile found - {0}", connectedProfile.ProfileName), Log.LogType.System)); } bool isWLANConnection = (connectedProfile == null) ? false : connectedProfile.IsWlanConnectionProfile; if (isWLANConnection == false) { logModel.AppendLog(Log.CreateLog("Device offline", Log.LogType.System)); ConnectionProfileFilter filter = new ConnectionProfileFilter(); filter.IsWlanConnectionProfile = true; var profile = await NetworkInformation.FindConnectionProfilesAsync(filter); var defaultProfile = profile.FirstOrDefault(); if (defaultProfile != null) { logModel.AppendLog(Log.CreateLog(String.Format("Default Profile found - {0}", defaultProfile.ProfileName), Log.LogType.System)); var networkOperatorTetheringManager = NetworkOperatorTetheringManager.CreateFromConnectionProfile(defaultProfile); if (networkOperatorTetheringManager.TetheringOperationalState != TetheringOperationalState.On) { var config = new NetworkOperatorTetheringAccessPointConfiguration(); config.Ssid = userSettings.SSID; config.Passphrase = userSettings.ACCESS_POINT_PWD; logModel.AppendLog(Log.CreateLog("Access Point creation init...", Log.LogType.System)); await networkOperatorTetheringManager.ConfigureAccessPointAsync(config); var rslt = await networkOperatorTetheringManager.StartTetheringAsync(); await Task.Delay(5000); logModel.AppendLog(Log.CreateLog("Access Point creation ending...", Log.LogType.System)); if (rslt.Status == TetheringOperationStatus.Success) { logModel.AppendLog(Log.CreateLog("Access Point created", Log.LogType.System)); } else { logModel.AppendLog(Log.CreateLog(String.Format("Access Point creation failed - {0}", rslt.AdditionalErrorMessage), Log.LogType.Warning)); } } else { logModel.AppendLog(Log.CreateLog(String.Format("Access Point already on - {0}", networkOperatorTetheringManager.TetheringOperationalState.ToString()), Log.LogType.System)); } } else { logModel.AppendLog(Log.CreateLog("No default profile found", Log.LogType.System)); } } else { logModel.AppendLog(Log.CreateLog("No connection profile found", Log.LogType.System)); } } catch (Exception ex) { logModel.AppendLog(Log.CreateErrorLog("Error on Access Point init", ex)); } }); taskTethering.Wait(); bw.WorkerSupportsCancellation = true; bw.WorkerReportsProgress = true; bw.DoWork += Bw_DoWork; bw.RunWorkerCompleted += Bw_RunWorkerCompleted; bw.ProgressChanged += Bw_ProgressChanged; }