public ProcessingServiceData GetProcessingServiceData() { if (!System.Messaging.MessageQueue.Exists(_remoteControlQueueName)) { System.Messaging.MessageQueue.Create(_remoteControlQueueName); } using (var remoteControlQueue = new System.Messaging.MessageQueue(_remoteControlQueueName, QueueAccessMode.SendAndReceive)) { remoteControlQueue.Formatter = new XmlMessageFormatter(new[] { typeof(ProcessingServiceData), typeof(RemoteControlCommand) }); var processingServiceDataRequest = new RemoteControlCommand { Code = RemoteControlCommandCode.GetProcessingServiceData }; remoteControlQueue.Send(new Message(processingServiceDataRequest)); do { var processingServiceMessage = remoteControlQueue.GetAllMessages().FirstOrDefault(); var processingServiceData = processingServiceMessage?.Body as ProcessingServiceData; if (processingServiceData == null) { Thread.Sleep(_callDelay); continue; } remoteControlQueue.Receive(); return(processingServiceData); } while (true); } }
/// <inheritdoc/> public string ToDelimitedString() { CultureInfo culture = CultureInfo.CurrentCulture; return(string.Format( culture, StringHelper.StringFormatSequence(0, 6, Configuration.FieldSeparator), Id, ReferenceCommandNumber.HasValue ? ReferenceCommandNumber.Value.ToString(Consts.NumericFormat, culture) : null, RemoteControlCommand?.ToDelimitedString(), ResponseRequired, RequestedCompletionTime?.ToDelimitedString(), Parameters != null ? string.Join(Configuration.FieldRepeatSeparator, Parameters.Select(x => x.ToDelimitedString())) : null ).TrimEnd(Configuration.FieldSeparator.ToCharArray())); }