in src/Foundation/Assets/code/AssetRepository.cs [26:73]
internal void Add(Asset requirement, bool preventAddToCache = false)
{
if (requirement.AddOnceToken != null)
{
if (this._items.Any(x => x.AddOnceToken != null && x.AddOnceToken == requirement.AddOnceToken))
{
return;
}
}
if (requirement.File != null)
{
if (this._items.Any(x => x.File != null && x.File == requirement.File))
{
return;
}
}
if (!preventAddToCache)
{
if (RenderingContext.Current != null)
{
var rendering = RenderingContext.Current.Rendering;
if (rendering != null && rendering.Caching.Cacheable)
{
AssetRequirementList cachedRequirements;
var renderingId = rendering.RenderingItem.ID;
if (!this._seenRenderings.Contains(renderingId))
{
this._seenRenderings.Add(renderingId);
cachedRequirements = new AssetRequirementList();
}
else
{
cachedRequirements = _cache.Get(renderingId) ?? new AssetRequirementList();
}
cachedRequirements.Add(requirement);
_cache.Set(renderingId, cachedRequirements);
}
}
}
// Passed the checks, add the requirement.
this._items.Add(requirement);
}