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); }
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."); } }
public LocalAssetSettings_Defaults_Tests() { settings = new LocalAssetSettings(); }
public LocalAssetSettings_Defaults_Tests() { settings = new LocalAssetSettings(); }