コード例 #1
0
ファイル: MDNParser.cs プロジェクト: blinds52/nhind
        /// <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);
        }
コード例 #2
0
ファイル: MDNParser.cs プロジェクト: blinds52/nhind
        /// <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);
        }
コード例 #3
0
ファイル: MDNParser.cs プロジェクト: blinds52/nhind
        /// <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);
        }
コード例 #4
0
ファイル: MDNParser.cs プロジェクト: blinds52/nhind
        /// <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);
            }
        }