Beispiel #1
0
        private async void Initialize(string address)
        {
            try
            {
                this.BeginProgress(Resources.Message_ReceivingInformation);
                var dataBaseInfos = await Task.Run(() => CremaBootstrapper.GetDataBases(address));

                var query = from connectionItem in this.cremaAppHost.ConnectionItems
                            where connectionItem.Address == this.cremaAppHost.ConnectionItem.Address &&
                            connectionItem.ID == this.cremaAppHost.ConnectionItem.ID &&
                            connectionItem.PasswordID == this.cremaAppHost.ConnectionItem.PasswordID
                            join dataBase in dataBaseInfos on connectionItem.DataBaseName equals dataBase.Name
                            select connectionItem;

                foreach (var item in dataBaseInfos)
                {
                    var viewModel = new DataBaseItemViewModel(this.authentication, item, this);
                    if (this.ConnectableOnly == true)
                    {
                        viewModel.ConnectionItem = query.FirstOrDefault(i => i.DataBaseName == item.Name);
                    }
                    this.compositionService?.SatisfyImportsOnce(viewModel);
                    this.itemsSource.Add(viewModel);
                }
                this.selectedItem = this.itemsSource.FirstOrDefault(item => item.Name == this.selectedValue);
                this.EndProgress();
                this.Refresh();
            }
            catch (Exception e)
            {
                this.EndProgress();
                AppMessageBox.ShowError(Resources.Message_ConnectionFailed, e);
                this.TryClose();
            }
        }