protected override void LoadChildren()
 {
     foreach (Region region in RegionsDatabaseDirectory.GetRegions(_entity as Country))
     {
         base.Children.Add(new RegionViewModel(region, this));
     }
 }
 protected override void LoadChildren()
 {
     foreach (District district in RegionsDatabaseDirectory.GetDistricts(_entity as Region))
     {
         base.Children.Add(new DistrictViewModel(district, this));
     }
 }
 protected override void LoadChildren()
 {
     foreach (City city in RegionsDatabaseDirectory.GetCities(_entity as District))
     {
         base.Children.Add(new CityViewModel(city, this));
     }
 }
 protected override void LoadChildren()
 {
     foreach (Microdistrict m in RegionsDatabaseDirectory.GetMicrodistricts(_entity as Borough))
     {
         base.Children.Add(new MicrodistrictViewModel(m, this));
     }
 }
 protected override void LoadChildren()
 {
     foreach (Country c in RegionsDatabaseDirectory.GetCountries())
     {
         base.Children.Add(new CountryViewModel(c)
         {
             IsExpanded = true
         });
     }
 }
        public void EditItem(object o)
        {
            // FIX: check if contains
            string newItemName = (o as string);

            if (String.IsNullOrWhiteSpace(newItemName))
            {
                return;
            }

            CurrentItem.Name = newItemName;
            RegionsDatabaseDirectory.Update(CurrentItem.Entity);
        }
        protected override void LoadChildren()
        {
            switch (Name)
            {
            case "Улицы":
                foreach (Street street in RegionsDatabaseDirectory.GetStreets(_parent.City))
                {
                    base.Children.Add(new StreetViewModel(street, _parent));
                }
                break;

            case "Районы города":
                foreach (Borough borough in RegionsDatabaseDirectory.GetBoroughs(_parent.City))
                {
                    base.Children.Add(new BoroughViewModel(borough, _parent));
                }
                break;
            }
        }
        public void AddItem(object o)
        {
            // FIX: check if contains

            if (CurrentItem == null)
            {
                return;
            }

            CurrentItem.IsExpanded = true;
            string newItemName = (o as string).Trim();

            if (String.IsNullOrEmpty(newItemName))
            {
                return;
            }

            int     newRecordId;
            IEntity newEntity;

            if (CurrentItem is CountryGroupViewModel)
            {
                newEntity    = new Country(newItemName);
                newRecordId  = RegionsDatabaseDirectory.Insert(newEntity, null);
                newEntity.ID = newRecordId;
                CurrentItem.Children.Add(new CountryViewModel(newEntity as Country));
            }

            else if (CurrentItem is CountryViewModel)
            {
                newEntity    = new Region(newItemName);
                newRecordId  = RegionsDatabaseDirectory.Insert(newEntity, CurrentItem.Entity);
                newEntity.ID = newRecordId;
                CurrentItem.Children.Add(new RegionViewModel(newEntity as Region, CurrentItem as CountryViewModel));
            }

            else if (CurrentItem is RegionViewModel)
            {
                newEntity    = new District(newItemName);
                newRecordId  = RegionsDatabaseDirectory.Insert(newEntity, CurrentItem.Entity);
                newEntity.ID = newRecordId;
                CurrentItem.Children.Add(new DistrictViewModel(newEntity as District, CurrentItem as RegionViewModel));
            }

            else if (CurrentItem is DistrictViewModel)
            {
                newEntity    = new City(newItemName);
                newRecordId  = RegionsDatabaseDirectory.Insert(newEntity, CurrentItem.Entity);
                newEntity.ID = newRecordId;
                CurrentItem.Children.Add(new CityViewModel(newEntity as City, CurrentItem as DistrictViewModel));
            }

            else if (CurrentItem is CityGroupViewModel)
            {
                CityGroupViewModel ci = CurrentItem as CityGroupViewModel;
                switch (ci.Name)
                {
                case "Улицы":
                    newEntity    = new Street(newItemName);
                    newRecordId  = RegionsDatabaseDirectory.Insert(newEntity, CurrentItem.Parent.Entity);
                    newEntity.ID = newRecordId;
                    CurrentItem.Children.Add(new StreetViewModel(newEntity as Street, ci.Parent as CityViewModel));
                    break;

                case "Районы города":
                    newEntity    = new Borough(newItemName);
                    newRecordId  = RegionsDatabaseDirectory.Insert(newEntity, CurrentItem.Parent.Entity);
                    newEntity.ID = newRecordId;
                    CurrentItem.Children.Add(new BoroughViewModel(newEntity as Borough, ci.Parent as CityViewModel));
                    break;
                }
            }

            else if (CurrentItem is BoroughViewModel)
            {
                newEntity    = new Microdistrict(newItemName);
                newRecordId  = RegionsDatabaseDirectory.Insert(newEntity, CurrentItem.Entity);
                newEntity.ID = newRecordId;

                CurrentItem.Children.Add(new MicrodistrictViewModel(newEntity as Microdistrict, CurrentItem as BoroughViewModel));
            }
        }