public static MetadataArtifactLoader Create(
     string path,
     MetadataArtifactLoader.ExtensionCheck extensionCheck,
     string validExtension,
     ICollection <string> uriRegistry)
 {
     return(MetadataArtifactLoader.Create(path, extensionCheck, validExtension, uriRegistry, (MetadataArtifactAssemblyResolver) new DefaultAssemblyResolver()));
 }
        internal static MetadataArtifactLoader CreateResourceLoader(
            string path,
            MetadataArtifactLoader.ExtensionCheck extensionCheck,
            string validExtension,
            ICollection <string> uriRegistry,
            MetadataArtifactAssemblyResolver resolver)
        {
            string assemblyName = (string)null;
            string resourceName = (string)null;

            MetadataArtifactLoaderCompositeResource.ParseResourcePath(path, out assemblyName, out resourceName);
            bool flag = assemblyName != null && (resourceName == null || assemblyName.Trim() == MetadataArtifactLoader.wildcard);

            MetadataArtifactLoaderCompositeResource.ValidateExtension(extensionCheck, validExtension, resourceName);
            if (flag)
            {
                return((MetadataArtifactLoader) new MetadataArtifactLoaderCompositeResource(path, assemblyName, resourceName, uriRegistry, resolver));
            }
            return((MetadataArtifactLoader) new MetadataArtifactLoaderResource(MetadataArtifactLoaderCompositeResource.ResolveAssemblyName(assemblyName, resolver), resourceName, uriRegistry));
        }
        internal static MetadataArtifactLoader CreateCompositeFromFilePaths(
            IEnumerable <string> filePaths,
            string validExtension,
            MetadataArtifactAssemblyResolver resolver)
        {
            MetadataArtifactLoader.ExtensionCheck extensionCheck = !string.IsNullOrEmpty(validExtension) ? MetadataArtifactLoader.ExtensionCheck.Specific : MetadataArtifactLoader.ExtensionCheck.All;
            List <MetadataArtifactLoader>         allCollections = new List <MetadataArtifactLoader>();
            HashSet <string> stringSet = new HashSet <string>((IEqualityComparer <string>)StringComparer.OrdinalIgnoreCase);

            foreach (string filePath in filePaths)
            {
                if (string.IsNullOrEmpty(filePath))
                {
                    throw new MetadataException(Strings.NotValidInputPath, (Exception) new ArgumentException(Strings.ADP_CollectionParameterElementIsNullOrEmpty((object)nameof(filePaths))));
                }
                string path = filePath.Trim();
                if (path.Length > 0)
                {
                    allCollections.Add(MetadataArtifactLoader.Create(path, extensionCheck, validExtension, (ICollection <string>)stringSet, resolver));
                }
            }
            return(MetadataArtifactLoader.Create(allCollections));
        }
        private static void ValidateExtension(
            MetadataArtifactLoader.ExtensionCheck extensionCheck,
            string validExtension,
            string resourceName)
        {
            if (resourceName == null)
            {
                return;
            }
            switch (extensionCheck)
            {
            case MetadataArtifactLoader.ExtensionCheck.Specific:
                MetadataArtifactLoader.CheckArtifactExtension(resourceName, validExtension);
                break;

            case MetadataArtifactLoader.ExtensionCheck.All:
                if (MetadataArtifactLoader.IsValidArtifact(resourceName))
                {
                    break;
                }
                throw new System.Data.Entity.Core.MetadataException(Strings.InvalidMetadataPath);
            }
        }
        internal static MetadataArtifactLoader Create(
            string path,
            MetadataArtifactLoader.ExtensionCheck extensionCheck,
            string validExtension,
            ICollection <string> uriRegistry,
            MetadataArtifactAssemblyResolver resolver)
        {
            if (MetadataArtifactLoader.PathStartsWithResPrefix(path))
            {
                return(MetadataArtifactLoaderCompositeResource.CreateResourceLoader(path, extensionCheck, validExtension, uriRegistry, resolver));
            }
            string str = MetadataArtifactLoader.NormalizeFilePaths(path);

            if (Directory.Exists(str))
            {
                return((MetadataArtifactLoader) new MetadataArtifactLoaderCompositeFile(str, uriRegistry));
            }
            if (!File.Exists(str))
            {
                throw new MetadataException(Strings.InvalidMetadataPath);
            }
            switch (extensionCheck)
            {
            case MetadataArtifactLoader.ExtensionCheck.Specific:
                MetadataArtifactLoader.CheckArtifactExtension(str, validExtension);
                break;

            case MetadataArtifactLoader.ExtensionCheck.All:
                if (!MetadataArtifactLoader.IsValidArtifact(str))
                {
                    throw new MetadataException(Strings.InvalidMetadataPath);
                }
                break;
            }
            return((MetadataArtifactLoader) new MetadataArtifactLoaderFile(str, uriRegistry));
        }