/// <summary>
        ///########## ######### ######### ####### ######### ####.</summary>
        /// <param name="emailClientType">### ######### #######.</param>
        /// <returns>######### ######### <see cref="IEmailClient"/>.</returns>
        public IEmailClient CreateEmailClient(EmailClientType emailClientType, string senderEmailAddress)
        {
            IEmailClient emailClient = GetCertainEmailClient();

            if (emailClient != null)
            {
                return(emailClient);
            }
            return(GetEmailClient(emailClientType, senderEmailAddress));
        }
Beispiel #2
0
        public IEmailClient Make(EmailClientType type)
        {
            switch (type)
            {
            case EmailClientType.Imap:
                return(new ImapEmailClient());

            case EmailClientType.Pop3:
                return(new Pop3EmailClient());

            default:
                throw new ArgumentException("Email Client not supported");
            }
        }
        private IEmailClient GetEmailClient(EmailClientType emailClientType, string senderEmailAddress)
        {
            switch (emailClientType)
            {
            case EmailClientType.Exchange:
                return(new ExchangeClient(UserConnection));

            case EmailClientType.Smtp:
                return(base.CreateEmailClient(senderEmailAddress));

            default:
                throw new EmailException("NotEmailType", NotEmailTypeError);
            }
        }
        /// <summary>
        ///########## ######### ######### ####### ######### ####.</summary>
        /// <param name="emailClientType">### ######### #######.</param>
        /// <returns>######### ######### <see cref="IEmailClient"/>.</returns>
        public IEmailClient CreateEmailClient(EmailClientType emailClientType)
        {
            switch (emailClientType)
            {
            case EmailClientType.Exchange:
                IEmailClient emailClient = GetCertainEmailClient();
                if (emailClient != null)
                {
                    return(emailClient);
                }
                return(new ExchangeClient(UserConnection));

            case EmailClientType.Smtp:
                return(new SmtpClient(UserConnection));

            default:
                throw new EmailException("NotEmailType", NotEmailTypeError);
            }
        }
        /// <summary>
        /// Returns email client type for specified cridentials.</summary>
        /// <param name="credentials">Connection parameters.</param>
        /// <returns><see cref="IEmailClient"/> instance.</returns>
        public override IEmailClient CreateEmailClient(Credentials credentials)
        {
            EmailClientType emailClientType = GetEmailClientType(credentials);

            switch (emailClientType)
            {
            case EmailClientType.Exchange:
                IEmailClient emailClient = GetCertainEmailClient(credentials);
                if (emailClient != null)
                {
                    return(emailClient);
                }
                return(new ExchangeClient(UserConnection, credentials));

            case EmailClientType.Smtp:
                return(new SmtpClient(UserConnection, credentials));;

            default:
                throw new EmailException("NotEmailType", NotEmailTypeError);
            }
        }
        /// <summary>
        /// Returns email client type for specified email.</summary>
        /// <param name="senderEmailAddress">Sender email.</param>
        /// <returns><see cref="IEmailClient"/> instance.</returns>
        /// <param name="ignoreRights">Flag that indicates whether to ignore rights.</param>
        public override IEmailClient CreateEmailClient(string senderEmailAddress, bool ignoreRights)
        {
            EmailClientType emailClientType = GetEmailClientType(senderEmailAddress, ignoreRights);

            return(CreateEmailClient(emailClientType));
        }
        /// <summary>
        /// ### ######### ######### ###### ########## ######### ######### #######.</summary>
        /// <param name="senderEmailAddress">######## ##### ###########.</param>
        /// <remarks>### ######### ####### ############ ## ########### ######.</remarks>
        /// <returns>######### ######### <see cref="IEmailClient"/>.</returns>
        public override IEmailClient CreateEmailClient(string senderEmailAddress)
        {
            EmailClientType emailClientType = GetEmailClientType(senderEmailAddress);

            return(CreateEmailClient(emailClientType, senderEmailAddress));
        }