/// <summary> /// Initializes a new instance of AzureSMProfile and loads its content from specified path. /// Any errors generated in the process are stored in ProfileLoadErrors collection. /// </summary> /// <param name="path">Location of profile file on disk.</param> public AzureSMProfile(string path) : this() { ProfilePath = path; ProfileLoadErrors = new List <string>(); if (!AzureSession.DataStore.DirectoryExists(AzureSession.ProfileDirectory)) { AzureSession.DataStore.CreateDirectory(AzureSession.ProfileDirectory); } if (AzureSession.DataStore.FileExists(ProfilePath)) { string contents = AzureSession.DataStore.ReadFileAsText(ProfilePath); IProfileSerializer serializer; if (CloudException.IsXml(contents)) { serializer = new XmlProfileSerializer(); if (!serializer.Deserialize(contents, this)) { ProfileLoadErrors.AddRange(serializer.DeserializeErrors); } } else if (CloudException.IsJson(contents)) { serializer = new JsonProfileSerializer(); if (!serializer.Deserialize(contents, this)) { ProfileLoadErrors.AddRange(serializer.DeserializeErrors); } } } }
public void ProfileSaveDoesNotSerializeContext() { var dataStore = new MockDataStore(); var profilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AzureSession.ProfileFile); var profile = new AzureSMProfile(profilePath); AzureSession.DataStore = dataStore; var tenant = Guid.NewGuid().ToString(); var environment = new AzureEnvironment { Name = "testCloud", Endpoints = { { AzureEnvironment.Endpoint.ActiveDirectory, "http://contoso.com" } } }; var account = new AzureAccount { Id = "*****@*****.**", Type = AzureAccount.AccountType.User, Properties = { { AzureAccount.Property.Tenants, tenant } } }; var sub = new AzureSubscription { Account = account.Id, Environment = environment.Name, Id = new Guid(), Name = "Contoso Test Subscription", Properties = { { AzureSubscription.Property.Tenants, tenant } } }; profile.Environments[environment.Name] = environment; profile.Accounts[account.Id] = account; profile.Subscriptions[sub.Id] = sub; profile.Save(); var profileFile = profile.ProfilePath; string profileContents = dataStore.ReadFileAsText(profileFile); var readProfile = JsonConvert.DeserializeObject<Dictionary<string, object>>(profileContents); Assert.False(readProfile.ContainsKey("DefaultContext")); AzureSMProfile parsedProfile = new AzureSMProfile(); var serializer = new JsonProfileSerializer(); Assert.True(serializer.Deserialize(profileContents, parsedProfile)); Assert.NotNull(parsedProfile); Assert.NotNull(parsedProfile.Environments); Assert.True(parsedProfile.Environments.ContainsKey(environment.Name)); Assert.NotNull(parsedProfile.Accounts); Assert.True(parsedProfile.Accounts.ContainsKey(account.Id)); Assert.NotNull(parsedProfile.Subscriptions); Assert.True(parsedProfile.Subscriptions.ContainsKey(sub.Id)); }
public override string ToString() { JsonProfileSerializer jsonSerializer = new JsonProfileSerializer(); return jsonSerializer.Serialize(this); }
/// <summary> /// Initializes a new instance of AzureSMProfile and loads its content from specified path. /// Any errors generated in the process are stored in ProfileLoadErrors collection. /// </summary> /// <param name="path">Location of profile file on disk.</param> public AzureSMProfile(string path) : this() { ProfilePath = path; ProfileLoadErrors = new List<string>(); if (!AzureSession.DataStore.DirectoryExists(AzureSession.ProfileDirectory)) { AzureSession.DataStore.CreateDirectory(AzureSession.ProfileDirectory); } if (AzureSession.DataStore.FileExists(ProfilePath)) { string contents = AzureSession.DataStore.ReadFileAsText(ProfilePath); IProfileSerializer serializer; if (CloudException.IsXml(contents)) { serializer = new XmlProfileSerializer(); if (!serializer.Deserialize(contents, this)) { ProfileLoadErrors.AddRange(serializer.DeserializeErrors); } } else if (CloudException.IsJson(contents)) { serializer = new JsonProfileSerializer(); if (!serializer.Deserialize(contents, this)) { ProfileLoadErrors.AddRange(serializer.DeserializeErrors); } } } }
public override string ToString() { JsonProfileSerializer jsonSerializer = new JsonProfileSerializer(); return(jsonSerializer.Serialize(this)); }