示例#1
0
        public static void ProcessAllPendingEmail(string Hash)
        {
            if (Hash != "NoTImeFORLove")
                return;
            EmailSetting emailSetting = EmailContext.LoadSmtpSettingsFile();

            #region Sending E-Mail

            SmtpClient client = new SmtpClient();

            client.Host = emailSetting.Host;
            client.Port = emailSetting.Port;
            client.EnableSsl = emailSetting.EnableSSL;
            client.UseDefaultCredentials = false;
            if (emailSetting.UseCredential)
            {
                client.Credentials = new NetworkCredential(emailSetting.Username, emailSetting.Password);
            }
            IList<EmailQueue> colItems = null;
            colItems = EmailQueueManager.GetAllPending();
            for (int k = 0; k < colItems.Count; k++)
            {
                try
                {
                    TG.ExpressCMS.DataLayer.Entities.Email _email = new Email();
                    _email = EmailManager.GetByID(colItems[k].MailID);
                    if (_email == null)
                        continue;
                    MailMessage _mail = new MailMessage();
                    _mail.Subject = _email.Name;
                    _mail.IsBodyHtml = true;
                    _mail.From = _mail.Sender = new MailAddress(emailSetting.SernderAddress, emailSetting.SenderName);

                    _mail.Body = "";
                    _mail.Body = _email.Details + EmailContext.GetTrackingCode(_email.ID.ToString());
                    _mail.To.Clear();
                    _mail.To.Add(new MailAddress(colItems[k].ReciverAddress, colItems[k].RecieverName));
                    _mail.BodyEncoding = Encoding.UTF8;
                    _mail.SubjectEncoding = Encoding.UTF8;
                    client.Send(_mail);

                    colItems[k].SendingStatus = DataLayer.Enums.RootEnums.SendingStatus.Sent;
                    colItems[k].DeliveryStatus = DataLayer.Enums.RootEnums.DeliveryStatus.Unknown;
                    EmailQueueManager.Update(colItems[k]);
                }
                catch (Exception ex)
                {
                    colItems[k].SendingStatus = DataLayer.Enums.RootEnums.SendingStatus.failed;
                    colItems[k].DeliveryStatus = DataLayer.Enums.RootEnums.DeliveryStatus.Failed;
                    EmailQueueManager.Update(colItems[k]);
                    UtilitiesManager.WriteFile(ExpressoConfig.GeneralConfigElement.GetPhysicalLoggingPath, ex.ToString(), false, true);
                }
            }
            #endregion
        }
示例#2
0
        public int Add(Email obj)
        {
            _connection.ConnectionString = _ConnectionString;
            _command.Connection = _connection;
            _command.CommandType = CommandType.StoredProcedure;
            _command.CommandText = INSERTEmail;

            #region [Parameters]
            SqlParameter parameterID = new SqlParameter(PN_ID, SqlDbType.Int);
            parameterID.Value = obj.ID;
            parameterID.Direction = ParameterDirection.Output;
            _command.Parameters.Add(parameterID);
            SqlParameter parameterName = new SqlParameter(PN_NAME, SqlDbType.NVarChar);
            parameterName.Value = obj.Name;
            parameterName.Direction = ParameterDirection.Input;
            _command.Parameters.Add(parameterName);
            SqlParameter parameterDetails = new SqlParameter(PN_DETAILS, SqlDbType.NVarChar);
            parameterDetails.Value = obj.Details;
            parameterDetails.Direction = ParameterDirection.Input;
            _command.Parameters.Add(parameterDetails);
            SqlParameter parameterIsDeleted = new SqlParameter(PN_ISDELETED, SqlDbType.Int);
            parameterIsDeleted.Value = obj.IsDeleted;
            parameterIsDeleted.Direction = ParameterDirection.Input;
            _command.Parameters.Add(parameterIsDeleted);
            SqlParameter parameterDate = new SqlParameter(PN_DATE, SqlDbType.NVarChar);
            parameterDate.Value = obj.Date;
            parameterDate.Direction = ParameterDirection.Input;
            _command.Parameters.Add(parameterDate);

            SqlParameter pType = new SqlParameter(PN_TYPE, SqlDbType.Int);
            pType.Value = obj.Type;
            pType.Direction = ParameterDirection.Input;
            _command.Parameters.Add(pType);
          
            #endregion;

            _connection.Open();
            _command.ExecuteNonQuery();
            _connection.Close();
            obj.ID = Convert.ToInt32(parameterID.Value);
            return obj.ID;
        }
示例#3
0
 public void PopulateEmail(SqlDataReader _dtr, Email obj)
 {
     int columnIndex = 0;
     columnIndex = _dtr.GetOrdinal(EmailDataMapper.CN_ID);
     if (!_dtr.IsDBNull(columnIndex))
     {
         obj.ID = _dtr.GetInt32((columnIndex));
     }
     columnIndex = _dtr.GetOrdinal(EmailDataMapper.CN_NAME);
     if (!_dtr.IsDBNull(columnIndex))
     {
         obj.Name = _dtr.GetString((columnIndex));
     }
     columnIndex = _dtr.GetOrdinal(EmailDataMapper.CN_DETAILS);
     if (!_dtr.IsDBNull(columnIndex))
     {
         obj.Details = _dtr.GetString((columnIndex));
     }
     columnIndex = _dtr.GetOrdinal(EmailDataMapper.CN_ISDELETED);
     if (!_dtr.IsDBNull(columnIndex))
     {
         obj.IsDeleted = _dtr.GetBoolean((columnIndex));
     }
     columnIndex = _dtr.GetOrdinal(EmailDataMapper.CN_DATE);
     if (!_dtr.IsDBNull(columnIndex))
     {
         obj.Date = _dtr.GetString((columnIndex));
     }
     columnIndex = _dtr.GetOrdinal(EmailDataMapper.CN_TYPE);
     if (!_dtr.IsDBNull(columnIndex))
     {
         obj.Type = (TG.ExpressCMS.DataLayer.Enums.RootEnums.EmailType)_dtr.GetInt32((columnIndex));
     }
 }
示例#4
0
 public Email GetEmail(SqlDataReader _dtr, IList<Email> colobj)
 {
     Email obj = colobj.Where(t => t.ID == Convert.ToInt32(_dtr[CN_ID].ToString())).SingleOrDefault();
     if (null == obj)
     {
         obj = new Email();
         colobj.Add(obj);
     }
     return obj;
 }
示例#5
0
        public IList<Email> GetAll()
        {

            Email obj = null;

            IList<Email> colobj = null;
            _connection.ConnectionString = _ConnectionString;
            _command.Connection = _connection;
            _command.CommandType = CommandType.StoredProcedure;
            _command.CommandText = SELECTALLEmail;

            _connection.Open();
            try
            {
                using (_dtreader = _command.ExecuteReader())
                {
                    if (_dtreader != null && _dtreader.HasRows)
                    {
                        obj = new Email();
                        colobj = new List<Email>();
                        while (_dtreader.Read())
                        {
                            obj = GetEmail(_dtreader, colobj);
                            GetEntityFromReader(_dtreader, obj);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {

                _dtreader.Close();
                _connection.Close();
            }

            return colobj;
        }
示例#6
0
 private void GetEntityFromReader(SqlDataReader _dtr, Email obj)
 {
     PopulateEmail(_dtr, obj);
 }
示例#7
0
        public Email GetByID(int ID)
        {

            Email obj = null;
            _connection.ConnectionString = _ConnectionString;
            _command.Connection = _connection;
            _command.CommandType = CommandType.StoredProcedure;
            _command.CommandText = SELECTEmail;

            #region [Parameters]
            SqlParameter parameterID = new SqlParameter(PN_ID, SqlDbType.Int);
            parameterID.Value = ID;
            parameterID.Direction = ParameterDirection.Input;
            _command.Parameters.Add(parameterID);
            #endregion;

            _connection.Open();
            try
            {
                using (_dtreader = _command.ExecuteReader())
                {
                    if (_dtreader != null && _dtreader.HasRows)
                    {
                        obj = new Email();
                        if (_dtreader.Read())
                            GetEntityFromReader(_dtreader, obj);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {

                _dtreader.Close();
                _connection.Close();
            }

            return obj;
        }
示例#8
0
        public static void Update(Email obj)
        {
            EmailDataMapper objCaller = new EmailDataMapper();

            objCaller.Update(obj);
        }
示例#9
0
        public static int Add(Email obj)
        {
            EmailDataMapper objCaller = new EmailDataMapper();

            return objCaller.Add(obj);
        }