private DBQueuedEmail GetQueuedEmailFromReader(IDataReader dataReader)
        {
            var item = new DBQueuedEmail();

            item.QueuedEmailId = NopSqlDataHelper.GetInt(dataReader, "QueuedEmailID");
            item.Priority      = NopSqlDataHelper.GetInt(dataReader, "Priority");
            item.From          = NopSqlDataHelper.GetString(dataReader, "From");
            item.FromName      = NopSqlDataHelper.GetString(dataReader, "FromName");
            item.To            = NopSqlDataHelper.GetString(dataReader, "To");
            item.ToName        = NopSqlDataHelper.GetString(dataReader, "ToName");
            item.CC            = NopSqlDataHelper.GetString(dataReader, "Cc");
            item.Bcc           = NopSqlDataHelper.GetString(dataReader, "Bcc");
            item.Subject       = NopSqlDataHelper.GetString(dataReader, "Subject");
            item.Body          = NopSqlDataHelper.GetString(dataReader, "Body");
            item.CreatedOn     = NopSqlDataHelper.GetUtcDateTime(dataReader, "CreatedOn");
            item.SendTries     = NopSqlDataHelper.GetInt(dataReader, "SendTries");
            item.SentOn        = NopSqlDataHelper.GetNullableUtcDateTime(dataReader, "SentOn");
            return(item);
        }
        /// <summary>
        /// Gets a queued email by identifier
        /// </summary>
        /// <param name="queuedEmailId">Email item identifier</param>
        /// <returns>Email item</returns>
        public override DBQueuedEmail GetQueuedEmailById(int queuedEmailId)
        {
            DBQueuedEmail item = null;

            if (queuedEmailId == 0)
            {
                return(item);
            }
            Database  db        = NopSqlDataHelper.CreateConnection(_sqlConnectionString);
            DbCommand dbCommand = db.GetStoredProcCommand("Nop_QueuedEmailLoadByPrimaryKey");

            db.AddInParameter(dbCommand, "QueuedEmailID", DbType.Int32, queuedEmailId);
            using (IDataReader dataReader = db.ExecuteReader(dbCommand))
            {
                if (dataReader.Read())
                {
                    item = GetQueuedEmailFromReader(dataReader);
                }
            }
            return(item);
        }
Example #3
0
        /// <summary>
        /// Gets all queued emails
        /// </summary>
        /// <param name="FromEmail">From Email</param>
        /// <param name="ToEmail">To Email</param>
        /// <param name="StartTime">The start time</param>
        /// <param name="EndTime">The end time</param>
        /// <param name="QueuedEmailCount">Email item count. 0 if you want to get all items</param>
        /// <param name="LoadNotSentItemsOnly">A value indicating whether to load only not sent emails</param>
        /// <param name="MaxSendTries">Maximum send tries</param>
        /// <returns>Email item collection</returns>
        public override DBQueuedEmailCollection GetAllQueuedEmails(string FromEmail,
                                                                   string ToEmail, DateTime?StartTime, DateTime?EndTime,
                                                                   int QueuedEmailCount, bool LoadNotSentItemsOnly, int MaxSendTries)
        {
            DBQueuedEmailCollection queuedEmailCollection = new DBQueuedEmailCollection();
            Database  db        = NopSqlDataHelper.CreateConnection(_sqlConnectionString);
            DbCommand dbCommand = db.GetStoredProcCommand("Nop_QueuedEmailLoadAll");

            db.AddInParameter(dbCommand, "FromEmail", DbType.String, FromEmail);
            db.AddInParameter(dbCommand, "ToEmail", DbType.String, ToEmail);
            if (StartTime.HasValue)
            {
                db.AddInParameter(dbCommand, "StartTime", DbType.DateTime, StartTime.Value);
            }
            else
            {
                db.AddInParameter(dbCommand, "StartTime", DbType.DateTime, DBNull.Value);
            }
            if (EndTime.HasValue)
            {
                db.AddInParameter(dbCommand, "EndTime", DbType.DateTime, EndTime.Value);
            }
            else
            {
                db.AddInParameter(dbCommand, "EndTime", DbType.DateTime, DBNull.Value);
            }
            db.AddInParameter(dbCommand, "QueuedEmailCount", DbType.Int32, QueuedEmailCount);
            db.AddInParameter(dbCommand, "LoadNotSentItemsOnly", DbType.Boolean, LoadNotSentItemsOnly);
            db.AddInParameter(dbCommand, "MaxSendTries", DbType.Int32, MaxSendTries);
            using (IDataReader dataReader = db.ExecuteReader(dbCommand))
            {
                while (dataReader.Read())
                {
                    DBQueuedEmail queuedEmail = GetQueuedEmailFromReader(dataReader);
                    queuedEmailCollection.Add(queuedEmail);
                }
            }

            return(queuedEmailCollection);
        }
        /// <summary>
        /// Updates a queued email
        /// </summary>
        /// <param name="queuedEmailId">Email item identifier</param>
        /// <param name="priority">The priority</param>
        /// <param name="from">From</param>
        /// <param name="fromName">From name</param>
        /// <param name="to">To</param>
        /// <param name="toName">To name</param>
        /// <param name="cc">Cc</param>
        /// <param name="bcc">Bcc</param>
        /// <param name="subject">Subject</param>
        /// <param name="body">Body</param>
        /// <param name="createdOn">The date and time of item creation</param>
        /// <param name="sendTries">The send tries</param>
        /// <param name="sentOn">The sent date and time. Null if email is not sent yet</param>
        /// <returns>Queued email</returns>
        public override DBQueuedEmail UpdateQueuedEmail(int queuedEmailId,
                                                        int priority, string from,
                                                        string fromName, string to, string toName, string cc, string bcc,
                                                        string subject, string body, DateTime createdOn, int sendTries, DateTime?sentOn)
        {
            DBQueuedEmail item      = null;
            Database      db        = NopSqlDataHelper.CreateConnection(_sqlConnectionString);
            DbCommand     dbCommand = db.GetStoredProcCommand("Nop_QueuedEmailUpdate");

            db.AddInParameter(dbCommand, "QueuedEmailID", DbType.Int32, queuedEmailId);
            db.AddInParameter(dbCommand, "Priority", DbType.Int32, priority);
            db.AddInParameter(dbCommand, "From", DbType.String, from);
            db.AddInParameter(dbCommand, "FromName", DbType.String, fromName);
            db.AddInParameter(dbCommand, "To", DbType.String, to);
            db.AddInParameter(dbCommand, "ToName", DbType.String, toName);
            db.AddInParameter(dbCommand, "Cc", DbType.String, cc);
            db.AddInParameter(dbCommand, "Bcc", DbType.String, bcc);
            db.AddInParameter(dbCommand, "Subject", DbType.String, subject);
            db.AddInParameter(dbCommand, "Body", DbType.String, body);
            db.AddInParameter(dbCommand, "CreatedOn", DbType.DateTime, createdOn);
            db.AddInParameter(dbCommand, "SendTries", DbType.Int32, sendTries);
            if (sentOn.HasValue)
            {
                db.AddInParameter(dbCommand, "SentOn", DbType.DateTime, sentOn.Value);
            }
            else
            {
                db.AddInParameter(dbCommand, "SentOn", DbType.DateTime, DBNull.Value);
            }

            if (db.ExecuteNonQuery(dbCommand) > 0)
            {
                item = GetQueuedEmailById(queuedEmailId);
            }

            return(item);
        }
Example #5
0
        /// <summary>
        /// Updates a queued email
        /// </summary>
        /// <param name="QueuedEmailID">Email item identifier</param>
        /// <param name="Priority">The priority</param>
        /// <param name="From">From</param>
        /// <param name="FromName">From name</param>
        /// <param name="To">To</param>
        /// <param name="ToName">To name</param>
        /// <param name="Cc">Cc</param>
        /// <param name="Bcc">Bcc</param>
        /// <param name="Subject">Subject</param>
        /// <param name="Body">Body</param>
        /// <param name="CreatedOn">The date and time of item creation</param>
        /// <param name="SendTries">The send tries</param>
        /// <param name="SentOn">The sent date and time. Null if email is not sent yet</param>
        /// <returns>Queued email</returns>
        public override DBQueuedEmail UpdateQueuedEmail(int QueuedEmailID, int Priority,
                                                        string From, string FromName, string To, string ToName, string Cc, string Bcc,
                                                        string Subject, string Body, DateTime CreatedOn, int SendTries, DateTime?SentOn)
        {
            DBQueuedEmail queuedEmail = null;
            Database      db          = NopSqlDataHelper.CreateConnection(_sqlConnectionString);
            DbCommand     dbCommand   = db.GetStoredProcCommand("Nop_QueuedEmailUpdate");

            db.AddInParameter(dbCommand, "QueuedEmailID", DbType.Int32, QueuedEmailID);
            db.AddInParameter(dbCommand, "Priority", DbType.Int32, Priority);
            db.AddInParameter(dbCommand, "From", DbType.String, From);
            db.AddInParameter(dbCommand, "FromName", DbType.String, FromName);
            db.AddInParameter(dbCommand, "To", DbType.String, To);
            db.AddInParameter(dbCommand, "ToName", DbType.String, ToName);
            db.AddInParameter(dbCommand, "Cc", DbType.String, Cc);
            db.AddInParameter(dbCommand, "Bcc", DbType.String, Bcc);
            db.AddInParameter(dbCommand, "Subject", DbType.String, Subject);
            db.AddInParameter(dbCommand, "Body", DbType.String, Body);
            db.AddInParameter(dbCommand, "CreatedOn", DbType.DateTime, CreatedOn);
            db.AddInParameter(dbCommand, "SendTries", DbType.Int32, SendTries);
            if (SentOn.HasValue)
            {
                db.AddInParameter(dbCommand, "SentOn", DbType.DateTime, SentOn.Value);
            }
            else
            {
                db.AddInParameter(dbCommand, "SentOn", DbType.DateTime, DBNull.Value);
            }

            if (db.ExecuteNonQuery(dbCommand) > 0)
            {
                queuedEmail = GetQueuedEmailByID(QueuedEmailID);
            }

            return(queuedEmail);
        }