public static string GetFilter(IEnumerable <IFormatModule> modules, FormatModuleFlags flags) { if (modules.Count() == 1) { return(GetFilter(modules.First())); } var allSupportedFiles = $"All Files|{string.Join( ";", modules.SelectMany( x => x.Extensions ).Distinct().Select( x => $"*.{x}" ) )}"; return($"{allSupportedFiles}|{string.Join( "|", modules.Where( x => x.Flags.HasFlag( flags ) ).Select( x => GetFilter( x ) ) )}"); }
public static string GenerateFilter(IEnumerable <IFormatModule> modules, FormatModuleFlags flags) { var moduleList = modules.Where(x => x.Flags.HasFlag(flags)).ToList(); if (moduleList.Count == 0) { return(string.Empty); } if (moduleList.Count == 1) { return(GenerateFilter(moduleList[0])); } return(string.Format("All files|{0}|{1}", string.Join(";", moduleList.SelectMany(x => x.Extensions).Distinct().Select(x => $"*.{x}")), string.Join("|", moduleList.Select(GenerateFilter)))); }
public static string GenerateFilter(FormatModuleFlags flags) { return(GenerateFilter(FormatModuleRegistry.Modules, flags)); }
public static string GenerateFilter(IEnumerable <Type> modelTypes, FormatModuleFlags flags) { return(GenerateFilter(modelTypes.Select(x => FormatModuleRegistry.ModulesByType[x]), flags)); }
public static string GenerateFilter(FormatModuleFlags flags) => GenerateFilter(FormatModuleRegistry.Modules, flags);
public static IEnumerable <IFormatModule> EnumerateModulesFromTypes(IEnumerable <Type> types, FormatModuleFlags flags) { foreach (var type in types) { if (FormatModuleRegistry.ModulesByType.TryGetValue(type, out IFormatModule module) && module.Flags.HasFlag(flags)) { yield return(module); } } }
public static string GetFilter(IEnumerable <Type> types, FormatModuleFlags flags) { return(GetFilter(EnumerateModulesFromTypes(types, flags), flags)); }