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