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(); } }