public void FilterConditionalEntities(Localization localization)
{
using (new Tracer(localization, this))
{
IConditionalEntityEvaluator conditionalEntityEvaluator = SiteConfiguration.ConditionalEntityEvaluator;
if (conditionalEntityEvaluator == null)
{
return;
}
EntityModel[] excludeEntities = Entities.Where(entity => !conditionalEntityEvaluator.IncludeEntity(entity, localization)).ToArray();
if (excludeEntities.Length > 0)
{
Log.Debug("Excluding {0} Entities from Region '{1}'.", excludeEntities.Length, Name);
foreach (EntityModel entity in excludeEntities)
{
Entities.Remove(entity);
}
}
foreach (RegionModel nestedRegion in Regions)
{
nestedRegion.FilterConditionalEntities(localization);
}
}
}
}