public static Stream UpgradeToCurrent(Stream stream, bool throwUpgradeException, bool renameInvalidDataSources, out RDLUpgradeResult upgradeResults)
        {
            if (!stream.CanSeek)
            {
                throw new ArgumentException("Upgrade reqires Stream.CanSeek.");
            }
            RdlUpgrader rdlUpgrader = new RdlUpgrader();

            return(rdlUpgrader.Upgrade(stream, throwUpgradeException, true, renameInvalidDataSources, out upgradeResults));
        }
 public static string Get2005NamespaceURI()
 {
     return(RdlUpgrader.Get2005NamespaceURI());
 }
 public static string GetCurrentNamespaceURI()
 {
     return(RdlUpgrader.Get2016NamespaceURI());
 }
        public static RDLUpgradeResult CheckForDundasCRI(XmlTextReader xmlTextReader)
        {
            RDLUpgradeResult rDLUpgradeResult = new RDLUpgradeResult();

            try
            {
                xmlTextReader.MoveToContent();
                if (xmlTextReader.NamespaceURI.Equals(RdlUpgrader.Get2005NamespaceURI(), StringComparison.OrdinalIgnoreCase))
                {
                    while (xmlTextReader.ReadToFollowing("CustomReportItem"))
                    {
                        bool flag   = false;
                        bool flag2  = false;
                        bool flag3  = false;
                        bool flag4  = false;
                        bool flag5  = false;
                        bool flag6  = false;
                        bool flag7  = false;
                        bool flag8  = false;
                        bool flag9  = false;
                        bool flag10 = false;
                        bool flag11 = false;
                        xmlTextReader.ReadStartElement();
                        do
                        {
                            if (xmlTextReader.NodeType == XmlNodeType.Element)
                            {
                                if (xmlTextReader.Name == "Type")
                                {
                                    string text = xmlTextReader.ReadInnerXml();
                                    flag  = text.Equals("DUNDASCHARTCONTROL", StringComparison.OrdinalIgnoreCase);
                                    flag2 = text.Equals("DUNDASGAUGECONTROL", StringComparison.OrdinalIgnoreCase);
                                    if (!flag && !flag2)
                                    {
                                        break;
                                    }
                                }
                                else if (xmlTextReader.Name == "CustomProperties")
                                {
                                    xmlTextReader.ReadStartElement();
                                    do
                                    {
                                        if (xmlTextReader.Name == "Name")
                                        {
                                            string text2 = xmlTextReader.ReadInnerXml();
                                            if (text2.StartsWith("CHART.ANNOTATIONS.", StringComparison.OrdinalIgnoreCase))
                                            {
                                                flag3 = true;
                                            }
                                            if (text2.StartsWith("CHART.LEGENDS", StringComparison.OrdinalIgnoreCase) && (text2.IndexOf("LEGEND.CUSTOMITEMS.", StringComparison.OrdinalIgnoreCase) > 0 || text2.IndexOf("LEGEND.CELLCOLUMNS.", StringComparison.OrdinalIgnoreCase) > 0))
                                            {
                                                flag4 = true;
                                            }
                                            if (text2.StartsWith("GAUGECORE.NUMERICINDICATORS.", StringComparison.OrdinalIgnoreCase))
                                            {
                                                flag5 = true;
                                            }
                                            if (text2.StartsWith("GAUGECORE.STATEINDICATORS.", StringComparison.OrdinalIgnoreCase))
                                            {
                                                flag6 = true;
                                            }
                                            if (text2.StartsWith("GAUGECORE.NAMEDIMAGES.", StringComparison.OrdinalIgnoreCase) || text2.StartsWith("GAUGECORE.IMAGES.", StringComparison.OrdinalIgnoreCase))
                                            {
                                                flag7 = true;
                                            }
                                            if (text2.StartsWith("CUSTOM_CODE_CS", StringComparison.OrdinalIgnoreCase) || text2.StartsWith("CUSTOM_CODE_VB", StringComparison.OrdinalIgnoreCase) || text2.StartsWith("CUSTOM_CODE_COMPILED_ASSEMBLY", StringComparison.OrdinalIgnoreCase))
                                            {
                                                flag8 = true;
                                            }
                                        }
                                    }while ((!(xmlTextReader.Name == "CustomProperties") || xmlTextReader.NodeType != XmlNodeType.EndElement) && xmlTextReader.Read());
                                }
                                else if (xmlTextReader.Name == "CustomData")
                                {
                                    bool flag12 = false;
                                    bool flag13 = false;
                                    xmlTextReader.ReadStartElement();
                                    do
                                    {
                                        if (xmlTextReader.Name == "DataRowGroupings")
                                        {
                                            if (xmlTextReader.NodeType == XmlNodeType.Element)
                                            {
                                                flag12 = true;
                                            }
                                            else if (xmlTextReader.NodeType == XmlNodeType.EndElement)
                                            {
                                                flag12 = false;
                                            }
                                        }
                                        else if (flag12 && xmlTextReader.Name == "Name")
                                        {
                                            string text3 = xmlTextReader.ReadInnerXml();
                                            if (text3.Equals("ERRORFORMULA:BOXPLOT", StringComparison.OrdinalIgnoreCase) || text3.Equals("FINANCIALFORMULA:FORECASTING", StringComparison.OrdinalIgnoreCase))
                                            {
                                                flag9 = true;
                                            }
                                            if (text3.StartsWith("ERRORFORMULA", StringComparison.OrdinalIgnoreCase) || text3.StartsWith("FINANCIALFORMULA", StringComparison.OrdinalIgnoreCase) || text3.StartsWith("STATISTICALFORMULA", StringComparison.OrdinalIgnoreCase))
                                            {
                                                xmlTextReader.Skip();
                                                string[] array  = xmlTextReader.ReadInnerXml().Split(';');
                                                string[] array2 = array;
                                                foreach (string text4 in array2)
                                                {
                                                    if (text4.Trim().StartsWith("SECONDARYAXIS", StringComparison.OrdinalIgnoreCase))
                                                    {
                                                        flag10 = true;
                                                    }
                                                }
                                            }
                                        }
                                        else if (xmlTextReader.Name == "DataRows")
                                        {
                                            if (xmlTextReader.NodeType == XmlNodeType.Element)
                                            {
                                                flag13 = true;
                                            }
                                            else if (xmlTextReader.NodeType == XmlNodeType.EndElement)
                                            {
                                                flag13 = false;
                                            }
                                        }
                                        else if (flag13 && xmlTextReader.Name == "Name")
                                        {
                                            string text5 = xmlTextReader.ReadInnerXml();
                                            if (text5.StartsWith("CUSTOMVALUE:", StringComparison.OrdinalIgnoreCase))
                                            {
                                                flag11 = true;
                                            }
                                        }
                                    }while ((!(xmlTextReader.Name == "CustomData") || xmlTextReader.NodeType != XmlNodeType.EndElement) && xmlTextReader.Read());
                                }
                            }
                            xmlTextReader.Skip();
                        }while (xmlTextReader.NodeType != XmlNodeType.EndElement);
                        if (flag)
                        {
                            if (flag3 || flag4 || flag8 || flag9 || flag10 || flag11)
                            {
                                rDLUpgradeResult.HasUnsupportedDundasChartFeatures = true;
                            }
                        }
                        else if (flag2 && (flag5 || flag6 || flag7 || flag8))
                        {
                            rDLUpgradeResult.HasUnsupportedDundasGaugeFeatures = true;
                        }
                    }
                    return(rDLUpgradeResult);
                }
                return(rDLUpgradeResult);
            }
            catch
            {
                return(rDLUpgradeResult);
            }
        }
        public static Stream UpgradeToCurrent(XmlReader rdlReader, string namespaceURI, bool throwUpgradeException, bool upgradeDundasCRIToNative, out RDLUpgradeResult upgradeResults)
        {
            RdlUpgrader rdlUpgrader = new RdlUpgrader();

            return(rdlUpgrader.Upgrade(rdlReader, namespaceURI, throwUpgradeException, upgradeDundasCRIToNative, out upgradeResults));
        }
            private void UpgradeFrom200901()
            {
                XmlElement          documentElement   = this.m_definition.DocumentElement;
                string              prefixOfNamespace = documentElement.GetPrefixOfNamespace("http://schemas.microsoft.com/sqlserver/reporting/2009/01/reportdefinition");
                string              text = this.BuildTempNamespacePrefix(prefixOfNamespace, documentElement);
                XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(this.m_definition.NameTable);

                xmlNamespaceManager.AddNamespace(text, "http://schemas.microsoft.com/sqlserver/reporting/2009/01/reportdefinition");
                XmlNodeList xmlNodeList = documentElement.SelectNodes(string.Format(CultureInfo.InvariantCulture, "//{0}:Chart", text), xmlNamespaceManager);

                foreach (XmlNode item in xmlNodeList)
                {
                    XmlNode xmlNode2 = item.SelectSingleNode(text + ":Code", xmlNamespaceManager);
                    if (xmlNode2 != null)
                    {
                        item.RemoveChild(xmlNode2);
                    }
                    XmlNode xmlNode3 = item.SelectSingleNode(text + ":CodeLanguage", xmlNamespaceManager);
                    if (xmlNode3 != null)
                    {
                        item.RemoveChild(xmlNode3);
                    }
                    XmlNode xmlNode4 = item.SelectSingleNode(text + ":ChartCodeParameters", xmlNamespaceManager);
                    if (xmlNode4 != null)
                    {
                        item.RemoveChild(xmlNode4);
                    }
                    string      xpath        = string.Format(CultureInfo.InvariantCulture, "{0}:ChartAreas/{0}:ChartArea/*/{0}:ChartAxis/{0}:ChartStripLines/{0}:ChartStripLine", text);
                    XmlNodeList xmlNodeList2 = item.SelectNodes(xpath, xmlNamespaceManager);
                    foreach (XmlNode item2 in xmlNodeList2)
                    {
                        XmlNode xmlNode6 = item2.SelectSingleNode(text + ":TitleAngle", xmlNamespaceManager);
                        if (xmlNode6 != null)
                        {
                            item2.RemoveChild(xmlNode6);
                        }
                    }
                }
                this.UpdateNamespaceURI(documentElement, "http://schemas.microsoft.com/sqlserver/reporting/2009/01/reportdefinition", RdlUpgrader.Get2010NamespaceURI());
            }
            private void UpgradeFrom200701()
            {
                XmlElement          documentElement   = this.m_definition.DocumentElement;
                string              prefixOfNamespace = documentElement.GetPrefixOfNamespace("http://schemas.microsoft.com/sqlserver/reporting/2007/01/reportdefinition");
                string              text = this.BuildTempNamespacePrefix(prefixOfNamespace, documentElement);
                XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(this.m_definition.NameTable);

                xmlNamespaceManager.AddNamespace(text, "http://schemas.microsoft.com/sqlserver/reporting/2007/01/reportdefinition");
                XmlNodeList elementsByTagName = documentElement.GetElementsByTagName("Textbox");

                foreach (XmlNode item in elementsByTagName)
                {
                    XmlNode    xmlNode2    = item.SelectSingleNode(text + ":Style", xmlNamespaceManager);
                    XmlNode    xmlNode3    = item.SelectSingleNode(text + ":Value", xmlNamespaceManager);
                    XmlElement xmlElement  = this.m_definition.CreateElement(prefixOfNamespace, "Paragraphs", "http://schemas.microsoft.com/sqlserver/reporting/2007/01/reportdefinition");
                    XmlElement xmlElement2 = this.m_definition.CreateElement(prefixOfNamespace, "Paragraph", "http://schemas.microsoft.com/sqlserver/reporting/2007/01/reportdefinition");
                    XmlElement xmlElement3 = this.m_definition.CreateElement(prefixOfNamespace, "TextRuns", "http://schemas.microsoft.com/sqlserver/reporting/2007/01/reportdefinition");
                    XmlElement xmlElement4 = this.m_definition.CreateElement(prefixOfNamespace, "TextRun", "http://schemas.microsoft.com/sqlserver/reporting/2007/01/reportdefinition");
                    xmlElement3.AppendChild(xmlElement4);
                    xmlElement2.AppendChild(xmlElement3);
                    xmlElement.AppendChild(xmlElement2);
                    item.AppendChild(xmlElement);
                    if (xmlNode3 != null)
                    {
                        xmlNode3 = item.RemoveChild(xmlNode3);
                        xmlElement4.AppendChild(xmlNode3);
                    }
                    else
                    {
                        xmlNode3 = this.m_definition.CreateElement(prefixOfNamespace, "Value", "http://schemas.microsoft.com/sqlserver/reporting/2007/01/reportdefinition");
                        xmlElement4.AppendChild(xmlNode3);
                    }
                    if (xmlNode2 != null)
                    {
                        string  value    = item.Attributes.GetNamedItem("Name").Value;
                        XmlNode xmlNode4 = this.m_definition.CreateElement(prefixOfNamespace, "Style", "http://schemas.microsoft.com/sqlserver/reporting/2007/01/reportdefinition");
                        this.MoveStyleItemIfExists("LineHeight", xmlNode2, xmlNode4, text, xmlNamespaceManager);
                        this.MoveStyleItemIfExists("TextAlign", xmlNode2, xmlNode4, text, xmlNamespaceManager);
                        if (xmlNode4.HasChildNodes)
                        {
                            this.ConvertMeDotValueExpressions(xmlNode4.ChildNodes, value);
                        }
                        xmlElement2.AppendChild(xmlNode4);
                        XmlNode xmlNode5 = this.m_definition.CreateElement(prefixOfNamespace, "Style", "http://schemas.microsoft.com/sqlserver/reporting/2007/01/reportdefinition");
                        this.MoveStyleItemIfExists("FontStyle", xmlNode2, xmlNode5, text, xmlNamespaceManager);
                        this.MoveStyleItemIfExists("FontFamily", xmlNode2, xmlNode5, text, xmlNamespaceManager);
                        this.MoveStyleItemIfExists("FontSize", xmlNode2, xmlNode5, text, xmlNamespaceManager);
                        this.MoveStyleItemIfExists("FontWeight", xmlNode2, xmlNode5, text, xmlNamespaceManager);
                        this.MoveStyleItemIfExists("Format", xmlNode2, xmlNode5, text, xmlNamespaceManager);
                        this.MoveStyleItemIfExists("TextDecoration", xmlNode2, xmlNode5, text, xmlNamespaceManager);
                        this.MoveStyleItemIfExists("Color", xmlNode2, xmlNode5, text, xmlNamespaceManager);
                        this.MoveStyleItemIfExists("Language", xmlNode2, xmlNode5, text, xmlNamespaceManager);
                        this.MoveStyleItemIfExists("Calendar", xmlNode2, xmlNode5, text, xmlNamespaceManager);
                        this.MoveStyleItemIfExists("NumeralLanguage", xmlNode2, xmlNode5, text, xmlNamespaceManager);
                        this.MoveStyleItemIfExists("NumeralVariant", xmlNode2, xmlNode5, text, xmlNamespaceManager);
                        if (xmlNode5.HasChildNodes)
                        {
                            this.ConvertMeDotValueExpressions(xmlNode5.ChildNodes, value);
                        }
                        xmlElement4.AppendChild(xmlNode5);
                    }
                }
                this.UpgradeCharts(documentElement, xmlNamespaceManager, "http://schemas.microsoft.com/sqlserver/reporting/2007/01/reportdefinition", prefixOfNamespace, text);
                this.UpdateNamespaceURI(documentElement, "http://schemas.microsoft.com/sqlserver/reporting/2007/01/reportdefinition", RdlUpgrader.Get2008NamespaceURI());
            }
 internal static string Get2007NamespaceURI()
 {
     return(RdlUpgrader.Get2007NamespaceURI());
 }