public static bool AnalyzeFragmentVisitorBase(string tSql, string sqlHash, SqlFragmentVisitorBase visitor) { var typeName = visitor.GetType().Name; List<VisitorBaseResult> result; if (_sqlFragmentVisitorsCache.TryGetValue(sqlHash, out result)) { var visitorBaseResult = result.FirstOrDefault(x => x.Name == typeName); if (visitorBaseResult != null) { return visitorBaseResult.Result; } } AnalyzeFragmentVisitor(tSql, sqlHash, visitor); var baseResult = new VisitorBaseResult { Name = typeName, Result = visitor.IsSuspected }; if (result != null) { result.Add(baseResult); _sqlFragmentVisitorsCache[sqlHash] = result; } else { _sqlFragmentVisitorsCache.TryAdd(sqlHash, new List<VisitorBaseResult> { baseResult }); } return visitor.IsSuspected; }
public static bool AnalyzeFragmentVisitorBase(string tSql, string sqlHash, SqlFragmentVisitorBase visitor) { var typeName = visitor.GetType().Name; List <VisitorBaseResult> result; if (_sqlFragmentVisitorsCache.TryGetValue(sqlHash, out result)) { var visitorBaseResult = result.FirstOrDefault(x => x.Name == typeName); if (visitorBaseResult != null) { return(visitorBaseResult.Result); } } AnalyzeFragmentVisitor(tSql, sqlHash, visitor); var baseResult = new VisitorBaseResult { Name = typeName, Result = visitor.IsSuspected }; if (result != null) { result.Add(baseResult); _sqlFragmentVisitorsCache[sqlHash] = result; } else { _sqlFragmentVisitorsCache.TryAdd(sqlHash, new List <VisitorBaseResult> { baseResult }); } return(visitor.IsSuspected); }