public void RefreshLists()
 {
     CostAccountCategoryList          = CostAccountCategories.GetAll().ToSvenTechCollection();
     CostAccountCategoriesHierachical = CostAccountCategoryList.ToHierachicalCollection <CostAccountCategory>()
                                        .ToSvenTechCollection();
     TaxTypeList   = TaxTypes.GetAll().ToSvenTechCollection();
     _CostAccounts = CostAccounts.GetAll().ToSvenTechCollection();
 }
        private IEnumerable <int> GetChildIds(int motherId)
        {
            List <int>        result = new List <int>();
            IEnumerable <int> ids    = CostAccountCategoryList.Where(x => x.ParentCategoryId == motherId)
                                       .Select(x => x.CostAccountCategoryId);

            result.AddRange(ids);
            if (ids.Any())
            {
                foreach (int id in ids)
                {
                    result.AddRange(GetChildIds(id));
                }
            }

            return(result);
        }