public string Send( MqSettingT sets, String body, Dictionary <String, string> propMessage ) { ChekSettings(sets); MqMessageGeneric msg = new MqMessageGeneric(); msg.Body = body.GetNullIfIsNullOrWhiteSpace(); foreach (var item in propMessage) { msg.AddedProperties.Add(item.Key, item.Value); } if (msg.Body.IsNullOrWhiteSpace()) { throw new ArgumentException("Пустое тело сообщения"); } var clnt = IBMMqClient.CreateClient(sets); clnt.Send(msg); StringBuilder sb = new StringBuilder(msg.MessageID.Length * 2); foreach (var b in msg.MessageID) { sb.AppendFormat("{0:X2}", b); } return(sb.ToString()); }
public MqMessageGeneric Get( MqSettingT sets, Boolean rolbackGet) { ChekSettings(sets); IBMMqClient clnt = null; try { clnt = IBMMqClient.CreateClient(sets); var msg = clnt.GetNextMessage(); if (rolbackGet) { clnt.RollbackGet(); } else { clnt.CommitGet(); } return(msg); } catch { clnt.RollbackGet(); throw; } }
private void btSendFromFile_Click(object sender, EventArgs e) { var files = Dialogs.FileBrowser( Owner: this, Title: "Выбор файлов с XML сообщений", Multiselect: true, CheckFileExists: true); foreach (var file in files) { try { tbMessageID.Text = null; tbPutDate.Text = null; tbBodyMessage.Text = File.ReadAllText(file); FillAddProp(tbBodyMessage.Text); MqSettingT sets = CreateMqSetting(); tbMessageID.Text = mqBL.Send( sets, tbBodyMessage.Text.GetNullIfIsNullOrWhiteSpace(), addpoplist.ToDictionary(x => x.Key, x => x.Value) ); Config.Instance.MqSets = sets; Config.Instance.Save(); } catch (Exception ex) { Dialogs.ErrorF(this, ex.Expand()); } } }
private MqSettingT CreateMqSetting() { MqSettingT sets = new MqSettingT(); sets.Host = tbHost.Text.GetNullIfIsNullOrWhiteSpace(); sets.ManagerName = tbManagerName.Text.GetNullIfIsNullOrWhiteSpace(); sets.ChannelName = tbChannelName.Text.GetNullIfIsNullOrWhiteSpace(); sets.QueueName = tbQueueName.Text.GetNullIfIsNullOrWhiteSpace(); sets.UserName = tbUser.Text.GetNullIfIsNullOrWhiteSpace(); sets.Password = tbPass.Text.GetNullIfIsNullOrWhiteSpace(); return(sets); }
/// <summary> /// Создание клиента к MQ /// </summary> /// <param name="mqSetting">Настройки очереди</param> /// <returns></returns> public static IBMMqClient CreateClient(MqSettingT mqSetting) { return(new IBMMqClient() { host = mqSetting.Host, managerName = mqSetting.ManagerName, channelName = mqSetting.ChannelName, queueName = mqSetting.QueueName, userName = mqSetting.UserName, password = mqSetting.Password }); }
private void ChekSettings(MqSettingT sets) { if (sets.Host.IsNullOrWhiteSpace()) { throw new ArgumentException("Не указан хост"); } if (sets.QueueName.IsNullOrWhiteSpace()) { throw new ArgumentException("Не указано имя очереди"); } if (sets.ChannelName.IsNullOrWhiteSpace()) { throw new ArgumentException(" Не указано имя канала"); } }
private void btGetMessage_Click(object sender, EventArgs e) { tbMessageID.Text = null; tbPutDate.Text = null; tbBodyMessage.Text = null; MqSettingT sets = CreateMqSetting(); try { var msg = mqBL.Get(sets, chbRollbakGet.Checked); if (msg == null) { Dialogs.InformationF(this, "Сообщений нет"); msg = new MqMessageGeneric(); } addpoplist.Clear(); foreach (var item in msg.AddedProperties) { addpoplist.Add(item); } tbMessageID.Text = msg.MessageID.JoinValuesToString(distinct: false, format: "{0:X2}"); if (msg.PutDateTime.HasValue) { tbPutDate.Text = msg.PutDateTime.Value.ToString("dd.MM.yyyy HH:mm:ss"); } tbBodyMessage.Text = msg.Body; Config.Instance.MqSets = sets; Config.Instance.Save(); } catch (Exception ex) { Dialogs.ErrorF(this, ex.Expand()); } }
private void btSend_Click(object sender, EventArgs e) { tbMessageID.Text = null; tbPutDate.Text = null; try { MqSettingT sets = CreateMqSetting(); tbMessageID.Text = mqBL.Send( sets, tbBodyMessage.Text.GetNullIfIsNullOrWhiteSpace(), addpoplist.ToDictionary(x => x.Key, x => x.Value) ); Config.Instance.MqSets = sets; Config.Instance.Save(); } catch (Exception ex) { Dialogs.ErrorF(this, ex.Expand()); } }