public static async Task<VersionConverterResult> ConvertToXmlVersion(
string projectCode, string targetVersion)
{
// TODO XML: move to IDE.Core
VersionConverterStatus error;
var xml = "";
if (!string.IsNullOrEmpty(projectCode))
{
//string projectCode;
//using (var storage = StorageSystem.GetStorage())
//{
// projectCode = await storage.ReadTextFileAsync(projectCodePath);
//}
if (projectCode != null)
{
var document = XDocument.Load(new StringReader(projectCode));
document.Declaration = new XDeclaration("1.0", "UTF-8", "yes");
var inputVersion = GetInputVersion(document);
if (XmlConstants.SupportedXMLVersions.Contains(inputVersion))
{
return new VersionConverterResult
{
Error = VersionConverterStatus.NoError,
Xml = projectCode
};
}
if (double.Parse(inputVersion) < XmlConstants.MinimumCodeVersion)
{
return new VersionConverterResult
{
Error = VersionConverterStatus.VersionTooOld,
Xml = null
};
}
error = ConvertVersions(inputVersion, targetVersion, document);
if (error == VersionConverterStatus.NoError)
{
var writer = new XmlStringWriter();
document.Save(writer, SaveOptions.None);
xml = writer.GetStringBuilder().ToString();
//if (overwriteProject)
//{
// using (var storage = StorageSystem.GetStorage())
// {
// try
// {
// await storage.WriteTextFileAsync(projectCodePath, xml);
// }
// catch
// {
// error = VersionConverterStatus.ProgramDamaged;
// }
// }
//}
}
else
{
error = VersionConverterStatus.ProgramDamaged;
}
}
else
{
error = VersionConverterStatus.ProgramDamaged;
}
}
else
{
error = VersionConverterStatus.ProgramDamaged;
}
return new VersionConverterResult { Xml = xml, Error = error };
}
}