private void SelectQueueInternal(IQueueManager qm, IRecentQueueConnection rqc, Action <IQueue> onOk) { var oqvm = CompositionHost.GetInstance <OpenQueueViewModel>(); oqvm.Initialize(qm); if (rqc != null) { oqvm.QueueName = rqc.QueueName; } ViewService.ShowModalView(oqvm, () => { if (oqvm.Result == MessageBoxResult.OK) { onOk?.Invoke(oqvm.SelectedQueue); } }); }
private void AddRecentConnection(IQueue q, IRecentQueueConnection previous) { RecentConnection data = null; if (previous != null) { if (q.QueueManager.ConnectionProperties.IsLocal) { var temp = previous as RecentQueueConnection; if (temp != null) { if (temp.QueueManagerName == q.QueueManager.Name && temp.QueueName == q.Name) { data = temp; } } } else { var temp = previous as RecentRemoteQueueConnection; if (temp != null) { if (temp.QueueManagerName == q.QueueManager.Name && temp.QueueName == q.Name && temp.HostName == q.QueueManager.ConnectionProperties.HostName && temp.Port == q.QueueManager.ConnectionProperties.Port && temp.Channel == q.QueueManager.ConnectionProperties.Channel && (temp.UserId ?? "") == (q.QueueManager.ConnectionProperties.UserId ?? "")) { data = temp; } } } } if (data == null) { if (q.QueueManager.ConnectionProperties.IsLocal) { data = new RecentQueueConnection { QueueManagerName = q.QueueManager.Name, QueueName = q.Name }; } else { data = new RecentRemoteQueueConnection { QueueManagerName = q.QueueManager.Name, QueueName = q.Name, HostName = q.QueueManager.ConnectionProperties.HostName, Port = q.QueueManager.ConnectionProperties.Port, Channel = q.QueueManager.ConnectionProperties.Channel }; if (!string.IsNullOrEmpty(q.QueueManager.ConnectionProperties.UserId)) { ((RecentRemoteQueueConnection)data).UserId = q.QueueManager.ConnectionProperties.UserId; } } } UserSettings.AddRecentConnection(data); }