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 }
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; }
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)); } }
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; }
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; }
private void GetEntityFromReader(SqlDataReader _dtr, Email obj) { PopulateEmail(_dtr, obj); }
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; }
public static void Update(Email obj) { EmailDataMapper objCaller = new EmailDataMapper(); objCaller.Update(obj); }
public static int Add(Email obj) { EmailDataMapper objCaller = new EmailDataMapper(); return objCaller.Add(obj); }