// Load configuration from AzureStorageExplorer.config private void LoadConfiguration() { string name, value; int pos; List<AccountViewModel> accounts = new List<AccountViewModel>(); AccountViewModel avm = null; accounts.Add( new AccountViewModel( "-- Select a Storage Account --", String.Empty, false, false, new RelayCommand(param => this.ViewStorageAccount(param as StorageAccount))) ); var useHardcodedAccount = ConfigurationManager.AppSettings.Get("UseHardcodedAccount"); var hardcodedAccountName = ConfigurationManager.AppSettings.Get("HardcodedAccountName"); var hardCodedKey = ConfigurationManager.AppSettings.Get("HardcodedKey"); var hardcodedUseHttps = ConfigurationManager.AppSettings.Get("HardcodedUseHttps"); if (useHardcodedAccount != null && useHardcodedAccount.ToLower().Equals("true") && !string.IsNullOrWhiteSpace(hardcodedAccountName) && !string.IsNullOrWhiteSpace(hardCodedKey)) { this.UseHardcodedAccount = true; var https = hardcodedUseHttps != null && hardcodedUseHttps.ToLower().Equals("true"); accounts.Add(new AccountViewModel(hardcodedAccountName, hardCodedKey, https, true, new RelayCommand( param => this.ViewStorageAccount(param as StorageAccount)))); } String folder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\AzureStorageExplorer\\"; Directory.CreateDirectory(folder); string filename = folder + ConfigFilename; if (File.Exists(filename)) { string item = String.Empty; string line; using (TextReader tr = File.OpenText(filename)) { while ((line = tr.ReadLine()) != null) { if (line.StartsWith("[")) { if (avm != null && !string.IsNullOrEmpty(avm.DisplayName) && !UseHardcodedAccount) { accounts.Add(avm); } switch (line) { case "[Account]": if (!UseHardcodedAccount) { item = line; avm = new AccountViewModel(null, null, false, false, new RelayCommand( param => this.ViewStorageAccount(param as StorageAccount))); } else { item = "[SkipAccounts]"; } break; case "[Options]": item = line; break; case "[ContentTypes]": item = line; break; } } else { pos = line.IndexOf('='); if (pos != -1) { name = line.Substring(0, pos); value = line.Substring(pos + 1); double doubleValue; switch (item) { case "[Options]": switch (name) { case "Culture": culture = value; break; case "ShowWelcomeOnStartup": showWelcomeOnStartup = (value == "1"); break; case "PreserveWindowPosition": preserveWindowPosition = (value == "1"); break; case "WindowTop": if (PreserveWindowPosition && Double.TryParse(value, out doubleValue)) { MainWindow.WindowTop = doubleValue; } break; case "WindowLeft": if (PreserveWindowPosition && Double.TryParse(value, out doubleValue)) { MainWindow.WindowLeft = doubleValue; } break; case "WindowHeight": if (PreserveWindowPosition && Double.TryParse(value, out doubleValue)) { MainWindow.WindowHeight = doubleValue; } break; case "WindowWidth": if (PreserveWindowPosition && Double.TryParse(value, out doubleValue)) { MainWindow.WindowWidth = doubleValue; } break; case "CheckForNewerVersion": checkForNewerVersion = (value == "1"); break; case "LastVersionOffered": lastVersionOffered = value; break; } break; case "[ContentTypes]": switch (name) { case "SetContentTypeAutomatically": ContentTypeMapping.SetContentTypeAutomatically = (value == "1"); break; case "Mapping": if (ContentTypeMapping.Values == null) { ContentTypeMapping.Values = new List<ContentTypeMapping>(); } ContentTypeMapping.Values.Add(new ContentTypeMapping(value)); break; } break; case "[Account]": switch (name) { case "Name": avm.AccountName = value; break; case "ConnectionString": avm.Key = value; break; case "BlobContainersUpgraded": avm.BlobContainersUpgraded = (value == "1"); break; case "AutoOpen": //account.AutoOpen = Boolean.Parse(value); break; case "UseHttps": avm.UseHttps = (value == "1"); break; } break; case "[SkipAccounts]": break; } } } } tr.Close(); if (avm != null) { if (avm != null && !string.IsNullOrEmpty(avm.AccountName)) { accounts.Add(avm); } avm = null; } } } SetCulture(); Accounts = new ObservableCollection<AccountViewModel>(accounts); }
public void RemoveAccount(AccountViewModel avm) { Accounts.Remove(avm); SaveConfiguration(); OnPropertyChanged("Accounts"); }
public AccountViewModel UpdateAccount(AccountViewModel avm) { List<AccountViewModel> list = new List<AccountViewModel>(_accounts.ToArray()); list.Sort(); _accounts = new ObservableCollection<AccountViewModel>(list); SaveConfiguration(); OnPropertyChanged("Accounts"); return avm; }
public AccountViewModel AddAccount(string name, string key, bool useHttps, bool blobContainersUpgraded) { AccountViewModel avm = new AccountViewModel(name, key, useHttps, blobContainersUpgraded, new RelayCommand(param => this.ViewStorageAccount(param as StorageAccount)) ); Accounts.Add(avm); List<AccountViewModel> list = new List<AccountViewModel>(_accounts.ToArray()); list.Sort(); _accounts = new ObservableCollection<AccountViewModel>(list); SaveConfiguration(); OnPropertyChanged("Accounts"); return avm; }