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));
 }