internal static SuppressionFile Load(ISuppressionFileSystemService fileSystemService, string suppressionFilePath, bool generateSuppressionBase) { fileSystemService.ThrowOnNull(nameof(fileSystemService)); suppressionFilePath.ThrowOnNullOrWhiteSpace(nameof(suppressionFilePath)); string assemblyName = fileSystemService.GetFileName(suppressionFilePath); if (string.IsNullOrEmpty(assemblyName)) { throw new FormatException("Acuminator suppression file name cannot be empty"); } var messages = new HashSet <SuppressMessage>(); if (!generateSuppressionBase) { messages = LoadMessages(fileSystemService, suppressionFilePath); } ISuppressionFileWatcherService fileWatcher; lock (fileSystemService) { fileWatcher = fileSystemService.CreateWatcher(suppressionFilePath); } return(new SuppressionFile(assemblyName, suppressionFilePath, generateSuppressionBase, messages, fileWatcher)); }
public static HashSet <SuppressMessage> LoadMessages(ISuppressionFileSystemService fileSystemService, string path) { XDocument document; lock (fileSystemService) { document = fileSystemService.Load(path); } if (document == null) { return(new HashSet <SuppressMessage>()); } HashSet <SuppressMessage> suppressionMessages = new HashSet <SuppressMessage>(); foreach (XElement suppressionMessageXml in document.Root.Elements(SuppressMessageElement)) { SuppressMessage?suppressMessage = SuppressMessage.MessageFromElement(suppressionMessageXml); if (suppressMessage != null) { suppressionMessages.Add(suppressMessage.Value); } } return(suppressionMessages); }
private SuppressionManager(ISuppressionFileSystemService fileSystemService, ICustomBuildActionSetter buildActionSetter) { _fileSystemService = fileSystemService.CheckIfNull(nameof(fileSystemService)); _suppressionFileCreator = new SuppressionFileCreator(this); BuildActionSetter = buildActionSetter; }
public static HashSet <SuppressMessage> LoadMessages(ISuppressionFileSystemService fileSystemService, string path) { XDocument document; lock (fileSystemService) { document = fileSystemService.Load(path); } if (document == null) { return(new HashSet <SuppressMessage>()); } return(document.Root.Elements(SuppressMessageElement) .Select(e => MessageFromElement(e)) .ToHashSet()); }
internal XDocument MessagesToDocument(ISuppressionFileSystemService fileSystemService) { fileSystemService.ThrowOnNull(nameof(fileSystemService)); XDocument document; lock (fileSystemService) { document = fileSystemService.Load(Path); } if (document == null) { throw new InvalidOperationException("Failed to open suppression file for edit"); } document.Root.RemoveNodes(); AddMessagesToDocument(document, Messages.Keys); return(document); }