public void PublishToSubscriber(Message pMessage) { var oService = new OrderService(); var dnService = new DeliveryNotificationService(); if (pMessage.GetType() == typeof(TransferCompleteMessage)) { var lMessage = pMessage as TransferCompleteMessage; var lVisitor = new TransferCompleteMessageToTransferCompleteItem(); lMessage.Accept(lVisitor); oService.FundsTransferCompleted(lVisitor.Result); } else if (pMessage.GetType() == typeof(TransferErrorMessage)) { var lMessage = pMessage as TransferErrorMessage; var lVisitor = new TransferErrorMessageToTransferErrorItem(); lMessage.Accept(lVisitor); oService.FundsTransferFailed(lVisitor.Result); } else if (pMessage.GetType() == typeof(DeliverySubmittedMessage)) { DeliverySubmittedMessage lMessage = pMessage as DeliverySubmittedMessage; var lVisitor = new DeliverySubmittedMessageToDeliverySubmittedItem(); lMessage.Accept(lVisitor); oService.DeliverySubmitted(lVisitor.Result); } else if (pMessage.GetType() == typeof(DeliveryCompletedMessage)) { DeliveryCompletedMessage lMessage = pMessage as DeliveryCompletedMessage; var lVisitor = new DeliveryCompletedMessageToDeliveryCompletedItem(); lMessage.Accept(lVisitor); dnService.NotifyDeliveryCompletion(lVisitor.Result.DeliveryIdentifier, (DeliveryInfoStatus)lVisitor.Result.Status); } }
public void Visit(IVisitable pVisitable) { if (pVisitable is DeliveryCompletedMessage) { DeliveryCompletedMessage lMsg = pVisitable as DeliveryCompletedMessage; Result = new DeliveryCompletedItem { SourceAddress = lMsg.SourceAddress, DestinationAddress = lMsg.DestinationAddress, OrderNumber = lMsg.OrderNumber, DeliveryIdentifier = lMsg.DeliveryIdentifier, DeliveryNotificationAddress = lMsg.DeliveryNotificationAddress, Status = lMsg.Status }; } }
public void Visit(IVisitable pVisitable) { if (pVisitable is DeliveryCompletedInfo) { DeliveryCompletedInfo lMsg = pVisitable as DeliveryCompletedInfo; Result = new DeliveryCompletedMessage() { SourceAddress = lMsg.DeliveryInfo.SourceAddress, DestinationAddress = lMsg.DeliveryInfo.DestinationAddress, OrderNumber = lMsg.DeliveryInfo.OrderNumber, DeliveryIdentifier = lMsg.DeliveryInfo.DeliveryIdentifier, DeliveryNotificationAddress = lMsg.DeliveryInfo.DeliveryNotificationAddress, Status = lMsg.DeliveryInfo.Status, Topic = lMsg.Topic }; } }