/// <summary> /// Check if MSMQchannel exist /// </summary> /// <param name="path">the queue name.</param> /// <returns>ResultModel:show the status of the request.</returns> internal ResultModel Exists(string path) { ResultModel resultModel = new ResultModel(); try { bool Exists = System.Messaging.MessageQueue.Exists(path); _logger.LogDebug(string.Format("Queue : {0} Exists", path)); resultModel.Result = (Exists == true) ? (int)ResultsEnum.AlreadyExist : (int)ResultsEnum.ChannelDosntExist; } catch (System.Messaging.MessageQueueException ex) { KubeMQ.MSMQSDK.Results.MessageQueueException messageEx = new KubeMQ.MSMQSDK.Results.MessageQueueException(ex); _logger.LogCritical(string.Format("MSMQ Path:{0} Exists check failed on ex :{1}", path, ex.Message)); resultModel.Result = (int)ResultsEnum.Error; resultModel.exception = messageEx; } catch (Exception ex) { resultModel.Result = (int)ResultsEnum.Error; _logger.LogCritical(string.Format("MSMQ Path:{0} Exists check failed on ex :{1}", path, ex.Message)); resultModel.exception = ex; } return(resultModel); }
/// <summary> /// Create Queue with path name. /// </summary> /// <param name="path">the queue name.</param> /// <returns>ResultModel:show the status of the request.</returns> internal ResultModel CreateQueue(string path) { ResultModel resultModel = new ResultModel(); try { System.Messaging.MessageQueue.Create(path); _logger.LogDebug(string.Format("MSMQPathCreated :{0}", path)); resultModel.Result = (int)ResultsEnum.Created; } catch (System.Messaging.MessageQueueException ex) { KubeMQ.MSMQSDK.Results.MessageQueueException messageEx = new KubeMQ.MSMQSDK.Results.MessageQueueException(ex); _logger.LogCritical(string.Format("MSMQ Path:{0} Creation failed on ex :{1}", path, ex.Message)); resultModel.Result = (int)ResultsEnum.Error; resultModel.exception = messageEx; } catch (Exception ex) { resultModel.Result = (int)ResultsEnum.Error; _logger.LogCritical(string.Format("MSMQ Path:{0} Creation failed on ex :{1}", path, ex.Message)); resultModel.exception = ex; } return(resultModel); }
/// <summary> /// Send message to existing queue from json format. /// </summary> /// <param name="meta">contain the queue general data for exemple:queue path , queue name.</param> /// <param name="body">the body as string to insert to the queue</param> /// <returns>ResultModel:show the status of the request.</returns> internal ResultModel SendJsonRequestToQueue(MSMQMeta meta, string body) { ResultModel resultModel = new ResultModel(); try { System.Messaging.MessageQueue myQueue = new System.Messaging.MessageQueue(meta.Path); myQueue.Formatter = new ActiveXMessageFormatter(); System.Messaging.Message MyMessage = MessageConvert.ConvertStringToSystemMessage(body, meta.FormmaterName, meta.Label); myQueue.Send(MyMessage); _logger.LogDebug(string.Format("Added json message to Queue:{0}", meta.Path)); resultModel.Result = (int)ResultsEnum.AddedToQueue; } catch (System.Messaging.MessageQueueException ex) { KubeMQ.MSMQSDK.Results.MessageQueueException messageEx = new KubeMQ.MSMQSDK.Results.MessageQueueException(ex); _logger.LogCritical("Failed Sending json Message to queue {0} on exception {1}", meta.Path, ex.Message); resultModel.Result = (int)ResultsEnum.Error; resultModel.exception = messageEx; } catch (Exception ex) { resultModel.Result = (int)ResultsEnum.Error; _logger.LogCritical("Failed Sending json Message to queue {0} on exception {1}", meta.Path, ex.Message); resultModel.exception = ex; } return(resultModel); }