Exemplo n.º 1
0
 /// <summary>
 /// Initializes an instance with the specified disposition notification type and action and sending modes
 /// </summary>
 /// <param name="notification">The disposition notification type</param>
 /// <param name="sendType">The sending mode type</param>
 /// <param name="triggerType">The action (trigger) mode type</param>
 /// <param name="isError">Notification for an error</param>
 public Disposition(MDNStandard.TriggerType triggerType, MDNStandard.SendType sendType, MDNStandard.NotificationType notification, bool isError)
 {
     this.TriggerType  = triggerType;
     this.SendType     = sendType;
     this.Notification = notification;
     this.IsError      = isError;
 }
Exemplo n.º 2
0
        /// <summary>
        /// Parse a disposition header value
        /// </summary>
        /// <param name="value">header value</param>
        /// <returns><see cref="Disposition"/> object</returns>
        public static Disposition ParseDisposition(string value)
        {
            // SplitField checks value for null/empty
            string[] parts = SplitField(value, MDNError.InvalidDisposition);

            string[] dispositionMode         = SplitSubField(parts[0], MDNError.InvalidDisposition);
            MDNStandard.TriggerType trigger  = ParseTriggerType(dispositionMode[0]);
            MDNStandard.SendType    sendType = ParseSendType(dispositionMode[1]);

            string[] dispositionType = SplitSubField(parts[1], 1, MDNError.InvalidDisposition);
            MDNStandard.NotificationType notification = ParseNotificationType(dispositionType[0].Trim());

            Disposition disposition = new Disposition(trigger, sendType, notification);

            if (dispositionType.Length > 1)
            {
                //
                // Modifiers that also need parsing
                //
                string[] modifiers = SplitModifier(dispositionType[1].Trim(), MDNError.InvalidDisposition);
                for (int i = 0; i < modifiers.Length; ++i)
                {
                    if (MailStandard.Equals(modifiers[i], MDNStandard.Modifier_Error))
                    {
                        disposition.IsError = true;
                    }
                }
            }

            return(disposition);
        }
Exemplo n.º 3
0
 /// <summary>
 /// Initializes an instance with the specified disposition notification type and action and sending modes
 /// </summary>
 /// <param name="notification">The disposition notification type</param>
 /// <param name="sendType">The sending mode type</param>
 /// <param name="triggerType">The action (trigger) mode type</param>
 public Disposition(MDNStandard.TriggerType triggerType, MDNStandard.SendType sendType, MDNStandard.NotificationType notification)
     : this(triggerType, sendType, notification, false)
 {
 }
Exemplo n.º 4
0
 /// <summary>
 /// Provides the appropriate <c>Disposition</c> header value for the <paramref name="type"/>
 /// </summary>
 /// <param name="type">The mode to translate</param>
 /// <returns>A string representation suitable for inclusion in the sending mode section of the <c>Disposition</c> header value</returns>
 public static string AsString(this MDNStandard.SendType type)
 {
     return(MDNStandard.ToString(type));
 }