void CreateWorker() { if (worker != null) { worker.Dispose(); } int?port = null; if (!string.IsNullOrWhiteSpace(tbPort.Text)) { port = int.Parse(tbPort.Text); } worker = new MQWorker(tbServerName.Text, port, tbVirtualHost.Text, tbUserName.Text, tbPassword.Text); }
// See Recipe 13.2 in the ElevatedPrivilegeActions assembly #endregion #region "13.3 List what processes an assembly is loaded in" // See Shared.TestAssemblyInProcesses(); #endregion #region "13.4 Using Message Queues on a local workstation" public static void TestMessageQueue() { // NOTE: Message Queue services must be set up for this to work // This can be added in Add/Remove Windows Components try { using (MQWorker mqw = new MQWorker(@".\private$\MQWorkerQ")) // workstation syntax //using (MQWorker mqw = new MQWorker(@".\MQWorkerQ")) // server syntax { string xml = "<MyXml><InnerXml location=\"inside\"/></MyXml>"; Console.WriteLine("Sending message to message queue: " + xml); mqw.SendMessage("Label for message", xml); string retXml = mqw.ReadMessage(); Console.WriteLine("Read message from message queue: " + retXml); } } catch (Exception ex) { Debug.WriteLine(ex.ToString()); } }
private void btStartStop_Click(object sender, EventArgs e) { var toStart = btStartStop.Text == btStartStopTextToStart ? true : false; btStartStop.Text = toStart ? btStartStopTextToStop : btStartStopTextToStart; int?port = null; if (!string.IsNullOrWhiteSpace(tbPort.Text)) { port = int.Parse(tbPort.Text); } try { if (worker != null) { worker.MessageReceivedEvent -= Worker_MessageReceivedEvent; } if (toStart) { worker = new MQWorker(tbServerName.Text, port, tbVirtualHost.Text, tbUserName.Text, tbPassword.Text); worker.MessageReceivedEvent += Worker_MessageReceivedEvent; worker.StartRecievingMessages(cbQueue.Text, cbUseTempQueue.Checked); SetResult($"{DateTime.Now.ToString("HH:mm:ss")}. Запущено получение сообщений", false); } else { worker.StopReceivingMessages(); worker.Dispose(); worker = null; SetResult($"{DateTime.Now.ToString("HH:mm:ss")}. Остановлено получение сообщений", false); } } catch (Exception ex) { SetResult(ex.Message, true); } }
async Task GetServerConfig() { var taskGetExchanges = await MQWorker.GetMQObjectsListAsync <MQExchange>(PathGetExchanges, AdminUserName, AdminPassword); dgExchanges.DataSource = taskGetExchanges; var taskGetQueues = await MQWorker.GetMQObjectsListAsync <MQQueue>(PathGetQueues, AdminUserName, AdminPassword); dgQueues.DataSource = taskGetQueues; var taskGetBindings = await MQWorker.GetMQObjectsListAsync <MQBinding>(PathGetBindigns, AdminUserName, AdminPassword); dgBindings.DataSource = taskGetBindings; cbExchanges.DataSource = taskGetExchanges; cbExchanges.DisplayMember = "Name"; cbQueues.DataSource = taskGetQueues; cbQueues.DisplayMember = "Name"; cbQueue.DataSource = taskGetQueues; cbQueue.DisplayMember = "Name"; cbExchange.DataSource = taskGetExchanges; cbExchange.DisplayMember = "Name"; }
private async void dgContextMenu_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { try { var item = e.ClickedItem; if (item.Text == "Удалить") { var gridName = ((sender as ContextMenuStrip).SourceControl as DataGridView).Name; switch (gridName) { case "dgExchanges": var exchangeName = dgExchanges.SelectedRows[0].Cells[0].Value.ToString(); var vHost = dgExchanges.SelectedRows[0].Cells[1].Value.ToString().Replace("/", "%2f"); if (MessageBox.Show(null, $"Удалить exchange {exchangeName}?", "Подтверждение удаления", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { var result = await MQWorker.DeleteMQObject($"{PathGetExchanges}/{vHost}/{exchangeName}", AdminUserName, AdminPassword); MessageBox.Show(result); await GetServerConfig(); } break; case "dgQueues": var queueName = dgQueues.SelectedRows[0].Cells[0].Value.ToString(); vHost = dgQueues.SelectedRows[0].Cells[1].Value.ToString().Replace("/", "%2f"); if (MessageBox.Show(null, $"Удалить queue {queueName}?", "Подтверждение удаления", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { var result = await MQWorker.DeleteMQObject($"{PathGetQueues}/{vHost}/{queueName}", AdminUserName, AdminPassword); MessageBox.Show(result); await GetServerConfig(); } break; case "dgBindings": exchangeName = dgBindings.SelectedRows[0].Cells[0].Value.ToString(); vHost = dgBindings.SelectedRows[0].Cells[1].Value.ToString().Replace("/", "%2f"); queueName = dgBindings.SelectedRows[0].Cells[2].Value.ToString(); var routingKey = dgBindings.SelectedRows[0].Cells[4].Value.ToString(); if (MessageBox.Show(null, $"Удалить binding {exchangeName}/{queueName} с routingKey {routingKey}?", "Подтверждение удаления", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { if (string.IsNullOrWhiteSpace(routingKey)) { routingKey = "~"; } if (string.IsNullOrWhiteSpace(exchangeName)) { exchangeName = "~"; } var result = await MQWorker.DeleteMQObject($"{PathGetBindigns}/{vHost}/e/{exchangeName}/q/{queueName}/{routingKey}", AdminUserName, AdminPassword); MessageBox.Show(result); await GetServerConfig(); } break; } } } catch (Exception ex) { } }