/// <summary> /// Parse RFC 3798, Disposition types, 3.2.6.2, includes type (processed) mentioned in document but /// (failed) added per Implementation Guide for Delivery Notification in Direct /// </summary> /// <param name="value">input text</param> /// <returns><see cref="MDNStandard.NotificationType"/> value</returns> public static MDNStandard.NotificationType ParseNotificationType(string value) { if (string.IsNullOrEmpty(value)) { throw new MDNException(MDNError.InvalidNotificationType); } if (MDNStandard.Equals(value, MDNStandard.Disposition_Processed)) { return(MDNStandard.NotificationType.Processed); } if (MDNStandard.Equals(value, MDNStandard.Disposition_Dispatched)) { return(MDNStandard.NotificationType.Dispatched); } if (MDNStandard.Equals(value, MDNStandard.Disposition_Displayed)) { return(MDNStandard.NotificationType.Displayed); } if (MDNStandard.Equals(value, MDNStandard.Disposition_Deleted)) { return(MDNStandard.NotificationType.Deleted); } if (MDNStandard.Equals(value, MDNStandard.Disposition_Denied)) { return(MDNStandard.NotificationType.Denied); } if (MDNStandard.Equals(value, MDNStandard.Disposition_Error)) { return(MDNStandard.NotificationType.Error); } if (MDNStandard.Equals(value, MDNStandard.Disposition_Failed)) { return(MDNStandard.NotificationType.Failed); } throw new MDNException(MDNError.InvalidNotificationType); }
/// <summary> /// Parse RFC 3798, Disposition modes, 3.2.6.1, sending-mode /// </summary> /// <param name="value">input text</param> /// <returns><see cref="MDNStandard.SendType"/> value</returns> public static MDNStandard.SendType ParseSendType(string value) { if (string.IsNullOrEmpty(value)) { throw new MDNException(MDNError.InvalidSendType); } if (MDNStandard.Equals(value, MDNStandard.Send_Automatic)) { return(MDNStandard.SendType.Automatic); } if (MDNStandard.Equals(value, MDNStandard.Send_Manual)) { return(MDNStandard.SendType.UserMediated); } throw new MDNException(MDNError.InvalidSendType); }
/// <summary> /// Parse RFC 3798, Disposition modes, 3.2.6.1, action-mode /// </summary> /// <param name="value">input text</param> /// <returns><see cref="MDNStandard.TriggerType"/> value</returns> public static MDNStandard.TriggerType ParseTriggerType(string value) { if (string.IsNullOrEmpty(value)) { throw new MDNException(MDNError.InvalidTriggerType); } if (MDNStandard.Equals(value, MDNStandard.Action_Automatic)) { return(MDNStandard.TriggerType.Automatic); } if (MDNStandard.Equals(value, MDNStandard.Action_Manual)) { return(MDNStandard.TriggerType.UserInitiated); } throw new MDNException(MDNError.InvalidTriggerType); }
/// <summary> /// Tries to parse the final recipient - IF it is a mail address /// Else returns null /// </summary> /// <param name="value">input text</param> /// <returns><see cref="System.Net.Mail.MailAddress"/> object</returns> public static MailAddress ParseFinalRecipient(string value) { if (string.IsNullOrEmpty(value)) { return(null); } string[] parts = SplitField(value, MDNError.InvalidFinalRecipient); if (!MDNStandard.Equals(parts[0], MDNStandard.RecipientType_Mail)) { return(null); } try { return(new MailAddress(parts[1])); } catch (Exception ex) { throw new MDNException(MDNError.InvalidFinalRecipient, ex); } }