/// <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; }
/// <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); }
/// <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) { }
/// <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)); }