private void ProcessPayment(Message message) { _logger.Log(LogLevel.Error, String.Format("Processing Payment")); String smsMessage = ""; switch (message.MessageStatus) { case Domain.MessageStatus.Submitted: _logger.Log(LogLevel.Error, String.Format("Starting Payment Message Processor")); IMessageProcessor messageProcessor = new SocialPayments.Services.MessageProcessors.SubmittedPaymentMessageProcessor(_ctx); messageProcessor.Process(message); break; //remove associated transactions from batch and cancel transactions case Domain.MessageStatus.CancelPending: break; case Domain.MessageStatus.Cancelled: //terminal state break; case Domain.MessageStatus.Completed: //terminal state break; case Domain.MessageStatus.Failed: //terminal state break; case Domain.MessageStatus.Pending: //moves to Completed State by NACHA processor when NACHA file is created break; case Domain.MessageStatus.Refunded: //terminal state break; } }