private void PopulateBestiaryCollectionAsync()
        {
            if (Global.Instance.BestiaryCollection.Count <= 0)
            {
                var uiThread = TaskScheduler.FromCurrentSynchronizationContext();

                Task bk2Thread = Task.Factory.StartNew(() => ClearBestiaryInfo())
                                 .ContinueWith(t1 => IoC.Get <IEventAggregator>().PublishOnUIThread("OpenProgressDialog"), uiThread)
                                 .ContinueWith(t2 => PopulateBestiaryCollection())
                                 .ContinueWith(t3 => ClearBestiaryInfo())
                                 .ContinueWith(t4 => IoC.Get <IEventAggregator>().PublishOnUIThread("CancelRootDialog"), uiThread);
            }
            else if (BestiaryCollection.Count <= 0)
            {
                BestiaryCollection = new BindableCollection <BestiaryCollection>(Global.Instance.BestiaryCollection);
            }
            else
            {
                if (!BestiaryCollection.SequenceEqual(Global.Instance.BestiaryCollection))
                {
                    var uiThread = TaskScheduler.FromCurrentSynchronizationContext();

                    Task bk2Thread = Task.Factory.StartNew(() => ClearBestiaryInfo())
                                     .ContinueWith(t1 => IoC.Get <IEventAggregator>().PublishOnUIThread("OpenProgressDialog"), uiThread)
                                     .ContinueWith(t2 => PopulateBestiaryCollection())
                                     .ContinueWith(t3 => ClearBestiaryInfo())
                                     .ContinueWith(t4 => IoC.Get <IEventAggregator>().PublishOnUIThread("CancelRootDialog"), uiThread);
                }
            }
        }
        public void DeleteBestiary()
        {
            try
            {
                int beastID = BestiaryCollection[SelectedIndex].ID;

                var forgeDatabase = Global.Instance.ForgeDatabase();

                BESTIARY beast = forgeDatabase.Bestiary.Single(x => x.ID == beastID);

                forgeDatabase.Bestiary.DeleteOnSubmit(beast);
                forgeDatabase.SubmitChanges();

                BestiaryCollection.RemoveAt(SelectedIndex);
                Global.Instance.BestiaryCollection = new BindableCollection <BestiaryCollection>(BestiaryCollection);

                ClearBestiaryInfo();
                SelectedIndex = -1;
            }
            catch { }
        }