示例#1
0
文件: AppService.cs 项目: liquidboy/X
        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)
            {

            }
            
                
                


           

            

            
        }
示例#2
0
        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" });
            }
        }