Catrobat.IDE.Core.Xml.VersionConverter.CatrobatVersionConverter.ConvertToXmlVersion C# (CSharp) Method

ConvertToXmlVersion() public static method

public static ConvertToXmlVersion ( string projectCode, string targetVersion ) : Task
projectCode string
targetVersion string
return Task
        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 };
        }
    }