Exemplo n.º 1
0
Arquivo: MqBL.cs Projeto: ewin66/Arcas
        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());
        }
Exemplo n.º 2
0
Arquivo: MqBL.cs Projeto: ewin66/Arcas
        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;
            }
        }
Exemplo n.º 3
0
        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());
                }
            }
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
 /// <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
     });
 }
Exemplo n.º 6
0
Arquivo: MqBL.cs Projeto: ewin66/Arcas
        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(" Не указано имя канала");
            }
        }
Exemplo n.º 7
0
        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());
            }
        }
Exemplo n.º 8
0
        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());
            }
        }