public void RecalculateSearchItemCounts()
 {
     foreach (FeatureSearchGroup searchGroup in SearchGroups)
     {
         var matchingEntities = SearchableEntities.Where(item => item.SearchGroupKey == searchGroup.SearchGroupKey);
         searchGroup.ItemCount = Convert.ToInt16(matchingEntities.Count());
     }
     this.RaisePropertyChanged("SearchGroupDisplayList");
 }
 private void AssignOwningSearchGroupId(ISearchableEntity entity)
 {
     if (entity.SearchGroupId > 0)
     {
         entity.OwningSearchGroupId = entity.SearchGroupId;
     }
     else
     {
         //Find the corresponding entity that is assigned to its owning search group.
         ISearchableEntity owningItem = SearchableEntities.FirstOrDefault(item => item.Id == entity.Id && item.SearchGroupId > 0);
         if (owningItem != null)
         {
             entity.OwningSearchGroupId = owningItem.SearchGroupId;
         }
     }
 }
        public void AssignSearchProperties()
        {
            foreach (FeatureSearchGroup searchGroup in SearchGroups)
            {
                var matchingEntities = SearchableEntities.Where(item => item.SearchGroupKey == searchGroup.SearchGroupKey);
                foreach (ISearchableEntity entity in matchingEntities)
                {
                    entity.SearchGroup        = searchGroup;
                    entity.CanNameChange      = searchGroup.CanNameChange;
                    entity.CanSearchKeyChange = searchGroup.CanSearchKeyChange;
                    entity.SearchGroupId      = searchGroup.SearchGroupId;

                    AssignOwningSearchGroupId(entity);
                }
            }
        }