Sdl.Web.Common.Models.RegionModel.FilterConditionalEntities C# (CSharp) Method

FilterConditionalEntities() public method

Filters (i.e. removes) conditional Entities which don't meet the conditions.
Applies to this Region and all its nested Regions.
public FilterConditionalEntities ( Sdl.Web.Common.Configuration.Localization localization ) : void
localization Sdl.Web.Common.Configuration.Localization The context Localization.
return void
        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);
                }
            }
        }
    }