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