/// <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);
}
}
}
}