private static IList<AreaType> GetAreaTypes(List<ParentAreaGroup> parentAreaGroups)
 {
     var reader = ReaderFactory.GetAreasReader();
     var builder = new AreaTypesWithParentAreaTypesBuilder(parentAreaGroups, reader);
     var areaTypes = builder.ChildAreaTypesWithParentAreaTypes;
     return areaTypes;
 }
        public IList<IAreaType> GetChildAreaTypeIdToParentAreaTypes()
        {
            var areasReader = ReaderFactory.GetAreasReader();
            var profileId = _parameters.GetNonSearchProfileId();

            // Get parent area groups
            var parentAreaGroups = areasReader.GetParentAreaGroups(profileId);
            if (parentAreaGroups.Any() == false)
            {
                parentAreaGroups = areasReader.GetParentAreaGroups(ProfileIds.Undefined);
            }

            // Limit to supported area types for that profile
            if (profileId != ProfileIds.Undefined)
            {
                parentAreaGroups = FilterParentAreaGroupsToThoseUsedInProfile(profileId, parentAreaGroups);
            }

            var organiser = new AreaTypesWithParentAreaTypesBuilder(parentAreaGroups, ReaderFactory.GetAreasReader());

            return organiser.ChildAreaTypesWithParentAreaTypes.Cast<IAreaType>().ToList();
        }