/// <summary> /// Writes the profile using the specified file provider /// </summary> /// <param name="provider">The file provider used to save the profile</param> public void Save(IFileProvider provider, bool serializeCache = true) { foreach (string env in AzureEnvironment.PublicEnvironments.Keys) { EnvironmentTable.Remove(env); } try { TryRemoveContext(Constants.DefaultValue); string contents = ToString(serializeCache); string diskContents = string.Empty; diskContents = provider.CreateReader().ReadToEnd(); if (diskContents != contents) { var writer = provider.CreateWriter(); writer.Write(contents); writer.Flush(); // When writing to a stream, ensure that the file is truncated // so that previous data is overwritten provider.Stream.SetLength(provider.Stream.Position); } } finally { // Adding back predefined environments foreach (AzureEnvironment env in AzureEnvironment.PublicEnvironments.Values) { EnvironmentTable[env.Name] = env; } } }
public bool TryRemoveEnvironment(string name, out IAzureEnvironment environment) { bool result = false; if (TryGetEnvironment(name, out environment)) { result = EnvironmentTable.Remove(name); } return(result); }
/// <summary> /// Writes profile to a specified path. /// </summary> /// <param name="path">File path on disk to save profile to</param> public void Save(string path) { if (string.IsNullOrEmpty(path)) { return; } // Removing predefined environments foreach (string env in AzureEnvironment.PublicEnvironments.Keys) { EnvironmentTable.Remove(env); } try { string contents = ToString(); string diskContents = string.Empty; if (AzureSession.Instance.DataStore.FileExists(path)) { diskContents = AzureSession.Instance.DataStore.ReadFileAsText(path); } if (diskContents != contents) { AzureSession.Instance.DataStore.WriteFile(path, contents); } } finally { // Adding back predefined environments foreach (AzureEnvironment env in AzureEnvironment.PublicEnvironments.Values) { EnvironmentTable[env.Name] = env; } } }