Пример #1
0
        public void AddUrlWithLocalAssets <T>(string url, LocalAssetSettings localAssetSettings, Action <Bundle> customizeBundle = null)
            where T : Bundle
        {
            var existingBundle = bundles.FirstOrDefault(
                b => b.ContainsPath(PathUtilities.AppRelative(localAssetSettings.Path))
                );

            if (existingBundle != null)
            {
                Remove(existingBundle);
            }

            var bundleFactory   = bundleFactoryProvider.GetBundleFactory <T>();
            var sourceDirectory = settings.SourceDirectory;
            IEnumerable <IFile> files;
            BundleDescriptor    bundleDescriptor;

            if (sourceDirectory.DirectoryExists(localAssetSettings.Path))
            {
                var fileSearch = localAssetSettings.FileSearch ?? fileSearchProvider.GetFileSearch(typeof(T));
                var directory  = sourceDirectory.GetDirectory(localAssetSettings.Path);
                files = fileSearch.FindFiles(directory);

                var descriptorFile = TryGetDescriptorFile <T>(directory);
                bundleDescriptor = ReadOrCreateBundleDescriptor(descriptorFile);
            }
            else
            {
                var singleFile = sourceDirectory.GetFile(localAssetSettings.Path);
                if (singleFile.Exists)
                {
                    files            = new[] { singleFile };
                    bundleDescriptor = new BundleDescriptor {
                        AssetFilenames = { "*" }
                    };
                }
                else
                {
                    throw new DirectoryNotFoundException(string.Format("File or directory not found: \"{0}\"", localAssetSettings.Path));
                }
            }

            bundleDescriptor.FallbackCondition = localAssetSettings.FallbackCondition;
            bundleDescriptor.ExternalUrl       = url;
            var bundle = bundleFactory.CreateBundle(localAssetSettings.Path, files, bundleDescriptor);

            if (customizeBundle != null)
            {
                customizeBundle(bundle);
            }
            Add(bundle);
        }
Пример #2
0
 public void AddUrlWithLocalAssets(string url, LocalAssetSettings localAssetSettings, Action <Bundle> customizeBundle = null)
 {
     if (url.EndsWith(".js", StringComparison.OrdinalIgnoreCase))
     {
         AddUrlWithLocalAssets <Scripts.ScriptBundle>(url, localAssetSettings, customizeBundle);
     }
     else if (url.EndsWith(".css", StringComparison.OrdinalIgnoreCase))
     {
         AddUrlWithLocalAssets <Stylesheets.StylesheetBundle>(url, localAssetSettings, customizeBundle);
     }
     else
     {
         throw new ArgumentException("Cannot determine the type of bundle to add. Specify the type using the generic overload of this method.");
     }
 }
Пример #3
0
 public LocalAssetSettings_Defaults_Tests()
 {
     settings = new LocalAssetSettings();
 }
Пример #4
0
 public LocalAssetSettings_Defaults_Tests()
 {
     settings = new LocalAssetSettings();
 }