private bool BelongsToApplication(IProcess process, BlacklistApplication application) { var sameName = process.Name.Equals(application.ExecutableName, StringComparison.OrdinalIgnoreCase); var sameOriginalName = process.OriginalName?.Equals(application.OriginalName, StringComparison.OrdinalIgnoreCase) == true; return(sameName || sameOriginalName); }
private void MapApplicationBlacklist(AppSettings settings, object value) { if (value is IList <object> applications) { foreach (var item in applications) { if (item is IDictionary <string, object> applicationData) { var isActive = applicationData.TryGetValue(Keys.Applications.Active, out var v) && v is bool active && active; var isWindowsProcess = applicationData.TryGetValue(Keys.Applications.OperatingSystem, out v) && v is int os && os == Keys.WINDOWS; if (isActive && isWindowsProcess) { var application = new BlacklistApplication(); if (applicationData.TryGetValue(Keys.Applications.AutoTerminate, out v) && v is bool autoTerminate) { application.AutoTerminate = autoTerminate; } if (applicationData.TryGetValue(Keys.Applications.ExecutableName, out v) && v is string executableName) { application.ExecutableName = executableName; } if (applicationData.TryGetValue(Keys.Applications.OriginalName, out v) && v is string originalName) { application.OriginalName = originalName; } settings.Applications.Blacklist.Add(application); } } } } }