public void CreateErrorReportBasic()
        {
            ErrorReport report = CreateBasicErrorReport();

            string reportXml = report.Serialize();

            report = ErrorReport.Deserialize(reportXml);
        }
        public ErrorQueueMessageVisualization get_error_message_details_Port_QueueName_SourceInstanceId_MessageId(
            ErrorMessageInputModel input)
        {
            var messageId = new MessageId
            {
                MessageIdentifier = input.MessageId,
                SourceInstanceId  = input.SourceInstanceId
            };
            var message = RetrieveMessage(messageId, input.Port, input.QueueName);

            if (message == null)
            {
                _fubuRequest.Set(new QueueMessageNotFound
                {
                    Id        = messageId,
                    QueueName = input.QueueName
                });

                return(null);
            }

            var errorReport      = ErrorReport.Deserialize(message.Data);
            var exceptionDetails = new ExceptionDetails
            {
                Explanation      = errorReport.Explanation,
                ExceptionType    = errorReport.ExceptionType,
                ExceptionMessage = errorReport.ExceptionMessage,
                ExceptionText    = errorReport.ExceptionText
            };

            var envelope = new Envelope(new NameValueHeaders(message.Headers))
            {
                Data = errorReport.RawData
            };

            envelope.UseSerializer(_serializer);

            return(new ErrorQueueMessageVisualization
            {
                MessageId = messageId,
                QueueName = message.Queue,
                SubQueueName = message.SubQueue,
                Status = message.Status,
                SentAt = message.SentAt,
                Headers = message.Headers,
                Payload = envelope.Message,
                ExceptionDetails = exceptionDetails
            });
        }
Beispiel #3
0
        public void can_dehydrate_and_rehydrate_itself()
        {
            var data    = report.Serialize();
            var report2 = ErrorReport.Deserialize(data);

            report2.Explanation.ShouldEqual(report.Explanation);
            report2.ExceptionMessage.ShouldEqual(report.ExceptionMessage);
            report2.ExceptionType.ShouldEqual(report.ExceptionType);
            report2.RawData.ShouldEqual(report.RawData);

            foreach (string key in report.Headers.Keys)
            {
                report2.Headers.Get(key).ShouldEqual(report.Headers.Get(key));
            }
        }
        public void requeues_then_moves_to_error_queue()
        {
            Wait.Until(() => TestMessageRecorder.HasProcessed(message1)).ShouldBeTrue();
            Wait.Until(() => TestMessageRecorder.AllProcessed.Length == 5).ShouldBeTrue();

            var scope   = _queueManager.BeginTransactionalScope();
            var message = scope.Receive(LightningQueuesTransport.ErrorQueueName, 5.Seconds());

            message.ShouldNotBeNull();


            var report = ErrorReport.Deserialize(message.Data);

            message.Headers.Get("ExceptionType").ShouldEqual("System.InvalidOperationException");
            report.RawData.ShouldNotBeNull();
        }
Beispiel #5
0
        public async Task requeues_then_moves_to_error_queue()
        {
            Wait.Until(() => TestMessageRecorder.HasProcessed(message1)).ShouldBeTrue();

            //todo need timeout
            var messageContext = await _queueManager.Receive(LightningQueuesTransport.ErrorQueueName).FirstAsync();

            var message = messageContext.Message;

            message.ShouldNotBeNull();


            var report = ErrorReport.Deserialize(message.Data);

            message.Headers.Get("ExceptionType").ShouldBe("System.InvalidOperationException");
            report.RawData.ShouldNotBeNull();
        }
Beispiel #6
0
        private void HandleDroppedFile(object data)
        {
            _viewModel.ErrorReports.Clear();
            foreach (string fileName in (string[])data)
            {
                try
                {
                    ErrorReport report = ErrorReport.Deserialize(File.ReadAllText(fileName));

                    _viewModel.AddSingleErrorReport(report);
                }
                catch (System.Exception)
                {
                    // TODO: Handling (message box).
                }
            }
        }
Beispiel #7
0
        public QueueMessageVisualization get_message_Port_QueueName_SourceInstanceId_MessageId(MessageInputModel input)
        {
            var messageId = MessageId.Parse($"{input.SourceInstanceId}/{input.MessageId}");

            var message = retrieveMessage(messageId, input.Port, input.QueueName);

            if (message == null)
            {
                return(new QueueMessageVisualization {
                    NotFound = true
                });
            }

            var model = new QueueMessageVisualization
            {
                MessageId = messageId,
                QueueName = message.Queue,
                SentAt    = message.SentAt,
                Headers   = message.Headers,
                Port      = input.Port
            };

            try
            {
                object payload;
                var    envelope = message.ToEnvelope();
                envelope.UseSerializer(_serializer);
                if (input.QueueName == "errors")
                {
                    var errorReport = ErrorReport.Deserialize(message.Data);
                    message = new Message
                    {
                        Data    = errorReport.RawData,
                        Headers = errorReport.Headers,
                        Id      = messageId,
                        Queue   = input.QueueName,
                    };
                    envelope = message.ToEnvelope();
                    var originalMessage = _serializer.Deserialize(envelope);
                    var errorSummary    = new ErrorSummary
                    {
                        exceptiontype    = errorReport.ExceptionType,
                        exceptionmessage = errorReport.ExceptionMessage,
                        exceptiontext    = errorReport.ExceptionText,
                        originalmessage  = originalMessage
                    };
                    payload = errorSummary;
                }
                else
                {
                    payload = envelope.Message;
                }


                model.Payload = JsonSerialization.ToJson(payload, true);
            }
            catch (Exception)
            {
                model.Payload = "Could not render as JSON";
            }

            return(model);
        }