private async static Task GetSettingsLocalAndCloud() { //bool doPullFromCloud = false; //DEFAULT SETTINGS var defaultSetting = new AppWideSetting(); defaultSetting.ExplorerMXDocumentsFolder = "ExplorerMX"; defaultSetting.FavouriteMXPictureFolder = "FavouriteMX"; defaultSetting.WatchMXVideoFolder = "WatchMX"; defaultSetting.FlickrKey = "xxxx"; defaultSetting.FlickrSecret = "xxxx"; defaultSetting.AMSUrl = "https://uapx.azurewebsites.net"; defaultSetting.AMSKey = "xxxx"; string forStorage = string.Format( "{0}|{1}|{2}|{3}|{4}|{5}|{6}", defaultSetting.ExplorerMXDocumentsFolder, defaultSetting.FavouriteMXPictureFolder, defaultSetting.WatchMXVideoFolder, defaultSetting.FlickrKey, defaultSetting.FlickrSecret, defaultSetting.AMSUrl, defaultSetting.AMSKey ); //PULL FROM LOCAL var appState = AppDatabase.Current.RetrieveAppState("AppWideSetting"); if (appState.Count == 0) { //use default settings AppSetting.ExplorerMXDocumentsFolder = defaultSetting.ExplorerMXDocumentsFolder; AppSetting.FavouriteMXPictureFolder = defaultSetting.FavouriteMXPictureFolder; AppSetting.WatchMXVideoFolder = defaultSetting.WatchMXVideoFolder; AppSetting.FlickrKey = defaultSetting.FlickrKey; AppSetting.FlickrSecret = defaultSetting.FlickrSecret; AppSetting.AMSUrl = defaultSetting.AMSUrl; AppSetting.AMSKey = defaultSetting.AMSKey; //save default settings to local store for future use AppDatabase.Current.SaveAppState("AppWideSetting", forStorage); } else { //use local settings var parts = appState[0].Value.Split("|".ToCharArray()); AppSetting.ExplorerMXDocumentsFolder = parts[0]; AppSetting.FavouriteMXPictureFolder = parts[1]; AppSetting.WatchMXVideoFolder = parts[2]; AppSetting.FlickrKey = parts[3]; AppSetting.FlickrSecret = parts[4]; AppSetting.AMSUrl = parts[5]; AppSetting.AMSKey = parts[6]; } //always pull from cloud to update local incase its changed from factory defaults try { var found = await AzureMobileService.Current.RetrieveAppWideSettingFromCloudAsync(); if (found != null && found.Count == 0) { //should never happen AzureMobileService.Current.PushToCloud(defaultSetting); } else { AppSetting.ExplorerMXDocumentsFolder = found[0].ExplorerMXDocumentsFolder; AppSetting.FavouriteMXPictureFolder = found[0].FavouriteMXPictureFolder; AppSetting.WatchMXVideoFolder = found[0].WatchMXVideoFolder; AppSetting.FlickrKey = found[0].FlickrKey; AppSetting.FlickrSecret = found[0].FlickrSecret; AppSetting.AMSUrl = found[0].AMSUrl; AppSetting.AMSKey = found[0].AMSKey; string forStorage2 = string.Format( "{0}|{1}|{2}|{3}|{4}|{5}|{6}", AppSetting.ExplorerMXDocumentsFolder, AppSetting.FavouriteMXPictureFolder, AppSetting.WatchMXVideoFolder, AppSetting.FlickrKey, AppSetting.FlickrSecret, AppSetting.AMSUrl, AppSetting.AMSKey ); //save default settings to local store for future use AppDatabase.Current.SaveAppState("AppWideSetting", forStorage2); } } catch // (Exception ex) { } }
public async void PushToCloud(AppWideSetting appWideSetting) { if (!AppService.IsConnected()) return; try { if (appWideSetting != null && !String.IsNullOrEmpty(appWideSetting.Id)) { await mstAppWideSetting.UpdateAsync(appWideSetting); } else { appWideSetting.Id = string.Empty; appWideSetting.MSId = string.Empty; await mstAppWideSetting.InsertAsync(appWideSetting); } Messenger.Default.Send<GeneralSystemWideMessage>(new GeneralSystemWideMessage("writing ...") { Identifier = "CLOUD BAR", SourceId = "AzureMobileService", Action = "WRITE" }); } catch { Messenger.Default.Send<GeneralSystemWideMessage>(new GeneralSystemWideMessage("writing ...") { Identifier = "CLOUD BAR", SourceId = "AzureMobileService", Action = "ERROR" }); } }