@ -9,11 +9,13 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling
{
{
private readonly ConcurrentDictionary < string , BundleConfiguration > _ bundles ;
private readonly ConcurrentDictionary < string , BundleConfiguration > _ bundles ;
private readonly ConcurrentDictionary < string , List < Action < BundleConfiguration > > > _l azyBundleConfigurationActions ;
private readonly ConcurrentDictionary < string , List < Action < BundleConfiguration > > > _l azyBundleConfigurationActions ;
private readonly List < Action < BundleConfiguration > > _l azyAllBundleConfigurationActions ;
public BundleConfigurationCollection ( )
public BundleConfigurationCollection ( )
{
{
_ bundles = new ConcurrentDictionary < string , BundleConfiguration > ( ) ;
_ bundles = new ConcurrentDictionary < string , BundleConfiguration > ( ) ;
_l azyBundleConfigurationActions = new ConcurrentDictionary < string , List < Action < BundleConfiguration > > > ( ) ;
_l azyBundleConfigurationActions = new ConcurrentDictionary < string , List < Action < BundleConfiguration > > > ( ) ;
_l azyAllBundleConfigurationActions = new List < Action < BundleConfiguration > > ( ) ;
}
}
/// <summary>
/// <summary>
@ -90,6 +92,12 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling
}
}
}
}
lock ( _l azyAllBundleConfigurationActions )
{
_l azyAllBundleConfigurationActions . ForEach ( c = > c . Invoke ( bundle ) ) ;
}
return bundle ;
return bundle ;
}
}
@ -123,6 +131,29 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling
return this ;
return this ;
}
}
/// <summary>
/// Configures all bundles.
/// This method also works for lazy bundles (those are created using razor tag helpers).
/// </summary>
/// <param name="configureAction">Configure action</param>
/// <returns>Returns this object for chained calls.</returns>
public BundleConfigurationCollection ConfigureAll ( [ NotNull ] Action < BundleConfiguration > configureAction )
{
Check . NotNull ( configureAction , nameof ( configureAction ) ) ;
foreach ( var bundle in _ bundles )
{
configureAction . Invoke ( bundle . Value ) ;
}
lock ( _l azyAllBundleConfigurationActions )
{
_l azyAllBundleConfigurationActions . Add ( configureAction ) ;
}
return this ;
}
/// <summary>
/// <summary>
/// Gets a bundle.
/// Gets a bundle.
/// </summary>
/// </summary>
@ -140,4 +171,4 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling
return bundle ;
return bundle ;
}
}
}
}
}
}