Example #1
0
    /// <summary>
    /// Sends a message using the messengers of the chain.
    /// </summary>
    /// <returns>An list containing the errors generated on send
    /// operation.</returns>
    /// <remarks>
    /// This method does not check the message validity. It is the
    /// responsability of the messenger to validate the message and, if is the
    /// case, does not send it.
    /// </remarks>
    IList<ResponseMessage> Send(IMessage message) {
      List<ResponseMessage> errors = new List<ResponseMessage>();

      foreach (IMessenger messenger in messengers_) {
        // the try/catch block is used here to ensure that the message
        // is delivered to all messengers.
        try {
          IMessage response = messenger.Send(message);
          OnProcessResponse(messenger, response);
        } catch (Exception exception) {
          ResponseMessage error = new ResponseMessage(exception.Message,
              ResponseMessageType.ErrorMessage);
          errors.Add(error);
        }
      }
      return errors;
    }
Example #2
0
 /// <summary>
 /// Validate the message parameters.
 /// </summary>
 /// <param name="message">The message to validate.</param>
 /// <param name="error_message">An <see cref="ResponseMessage"/> that
 /// contains description of the error that cause the validation error.
 /// </param>
 /// <returns>true if the message is valid; otherwise false.</returns>
 protected bool ValidateMessage(IMessage message,
   out ResponseMessage error_message) {
   if (message.Sender == null) {
     error_message = new ResponseMessage(
       Resources.Messaging_smtperr_NoSender,
       ResponseMessageType.ErrorMessage);
     return false;
   } else if (message.Sender.Address == null) {
     error_message = new ResponseMessage(
       Resources.Messaging_smtperr_NoSenderAddress,
       ResponseMessageType.ErrorMessage);
     return false;
   } else if (message.Recipients == null
     || message.Recipients.Length == 0) {
     error_message = new ResponseMessage(
       Resources.Messaging_smtperr_NoRecipients,
       ResponseMessageType.ErrorMessage);
     return false;
   }
   error_message = null;
   return true;
 }