Exemplo n.º 1
0
        public string Run(string _input, int _startAt = 0)
        {
            Match match = xpoMatch.Match(_input, _startAt);

            if (match.Success)
            {
                string methodName = MetaData.extractNextXMLElement("Name", match.Index, _input);
                if (methodName != string.Empty)
                {
                    string AOTPath = MetaData.AOTPath(methodName).ToLowerInvariant();
                    if (methodsToDelete.Contains(AOTPath))
                    {
                        string text = _input.Substring(match.Index, match.Length);
                        if (!text.Contains("SysObsolete"))
                        {
                            Debug.WriteLine(string.Format("{0} isn't marked with SysObsolete", AOTPath));
                        }
                        string updatedInput = _input.Remove(match.Index, match.Length);
                        Hits++;
                        return(this.Run(updatedInput, match.Index));
                    }
                }
                _input = this.Run(_input, match.Index + 50);
            }

            return(_input);
        }
        public string Run(string input, int startAt = 0)
        {
            Match match = xpoMatch.Match(input, startAt);

            if (match.Success)
            {
                string xml = match.Value;

                if (!xml.Contains("<Optional>"))
                {
                    string fieldName = MetaData.extractFromXML(xml, "//AxTableIndexField/DataField");
                    string indexName = MetaData.extractPreviousXMLElement("Name", match.Index, input);
                    string tableName = MetaData.extractNextXMLElement("Name", 1, input);
                    string token     = tableName + "\\" + indexName + "\\" + fieldName;

                    if (fieldsToMakeOptional.Contains(token.ToLowerInvariant()))
                    {
                        if (xml.Contains("<Tags>"))
                        {
                            throw new NotSupportedException();
                        }
                        if (xml.Contains("<IncludedColumn>"))
                        {
                            throw new NotSupportedException();
                        }

                        int endpos   = xml.IndexOf("</DataField>") + "</DataField>".Length;
                        int startPos = xml.LastIndexOf(Environment.NewLine, endpos);
                        int xmlPos   = xml.IndexOf("<DataField>");

                        string updatedInput = input.Insert(match.Index + endpos, xml.Substring(startPos, xmlPos - startPos) + "<Optional>Yes</Optional>");

                        string indexToken = "<Name>" + indexName + "</Name>";
                        int    indexPos   = updatedInput.IndexOf(indexToken);

                        int endpos2 = updatedInput.IndexOf("</IsSystemGenerated>", indexPos) + "</IsSystemGenerated>".Length;
                        if (endpos2 > indexPos)
                        {
                            int startPos2 = updatedInput.LastIndexOf(Environment.NewLine, endpos2);
                            int xmlPos2   = updatedInput.IndexOf("<IsSystemGenerated>", startPos2);

                            if (!updatedInput.Substring(indexPos, endpos2 - indexPos).Contains("IsManuallyUpdated"))
                            {
                                updatedInput = updatedInput.Insert(xmlPos2, "<IsManuallyUpdated>Yes</IsManuallyUpdated>" + updatedInput.Substring(startPos2, xmlPos2 - startPos2));
                            }
                        }
                        Hits++;
                        return(this.Run(updatedInput, match.Index + match.Length));
                    }
                    return(this.Run(input, match.Index + match.Length));
                }
            }

            return(input);
        }
Exemplo n.º 3
0
        public string Run(string input, int startAt = 0)
        {
            Match match = xpoMatch.Match(input, startAt);

            if (match.Success)
            {
                string xml        = match.Value;
                string table1Name = match.Groups[1].Value.Trim();
                string field1Name = match.Groups[2].Value.Trim();
                string table2Name = match.Groups[3].Value.Trim();
                string field2Name = match.Groups[4].Value.Trim();

                methodName = MetaData.extractPreviousXMLElement("Name", match.Index, input);

                if (methodName.ToLowerInvariant() == "init")
                {
                    string dsxml = MetaData.extractPreviousXMLElement("DataSource", match.Index, input);
                    if (dsxml != string.Empty) // Not a datasource method
                    {
                        string dsName = MetaData.extractNextXMLElement("Name", 1, dsxml);
                        if (dsName == table1Name && dsName != table2Name)
                        {
                            string methodxml = MetaData.extractPreviousXMLElement("Source", match.Index, input).ToLowerInvariant();

                            if (!methodxml.Contains(".adddatasource"))
                            {
                                this.log("Possibly wrong order of parameters. " + xml);
                            }
                        }
                    }
                }

                return(this.Run(input, match.Index + match.Length));
            }

            return(input);
        }
Exemplo n.º 4
0
        public string Run(string input, int startAt = 0)
        {
            Match match = xpoMatch.Match(input, startAt);

            if (match.Success)
            {
                int designPos = input.IndexOf("<Design>");
                if (designPos < match.Index)
                {
                    string dataGroup = MetaData.extractNextXMLElement("DataGroup", match.Index, input);

                    if (dataGroup != "InventoryDimensions" &&
                        dataGroup != "ProductDimensions"
                        )
                    {
                        Debug.WriteLine(string.Format("{0} Result={1}  DataGroup = {2}", Scanner.FILENAME, match.Value, dataGroup));
                        Hits++;
                    }
                }
                return(this.Run(input, match.Index + match.Length));
            }

            return(input);
        }