public NamespaceBasedRuleTarget( AssemblyName assemblyName, IReadOnlyList <ISourceCodeFileUsingNamespaces> sourceCodeFiles, INamespacesDependenciesCache namespacesDependenciesCache) { _sourceCodeFiles = sourceCodeFiles; _namespacesDependenciesCache = namespacesDependenciesCache; _projectAssemblyName = assemblyName; }
public void AddNamespaceMappingTo(INamespacesDependenciesCache namespacesDependenciesCache) { foreach (var declaredNamespace in _declaredNamespaces) { foreach (var @using in _usings) { namespacesDependenciesCache .AddMapping(declaredNamespace, @using); } } }
public void Evaluate(AssemblyName projectAssemblyName, INamespacesDependenciesCache namespacesCache, IAnalysisReportInProgress report) { var cycles = namespacesCache.RetrieveCycles(); if (cycles.Any()) { report.Add( _ruleViolationFactory.NoCyclesRuleViolation(Description(), projectAssemblyName, cycles)); } }
public void Evaluate(AssemblyName projectAssemblyName, INamespacesDependenciesCache namespacesCache, IAnalysisReportInProgress report) { var paths = namespacesCache.RetrievePathsBetween(_dto.FromPattern, _dto.ToPattern); if (paths.Any()) { report.Add( _ruleViolationFactory.NoUsingsRuleViolation(Description(), projectAssemblyName, paths)); } }