private static Return SendDirectMessage(string fromEmailAddress, IEnumerable <MailAddress> emailAddresses, string subject, string body, bool bcc = true) { var returnObj = new Return(); var emailLog = new EmailLog(); Message message = new Message(); message.Subject = subject; message.From = new Address(fromEmailAddress); foreach (var mailAddress in emailAddresses) { if (bcc) { message.Bcc.Add(mailAddress.Address); } else { message.To.Add(mailAddress.Address); } } message.IsHtml = true; message.BodyHtml.Text = body; message.BodyText.Text = body; emailLog.FromEmailAddress = message.From.Email; emailLog.SenderName = message.Sender.Name; emailLog.SenderEmailAddress = message.Sender.Email; emailLog.Subject = message.Subject; emailLog.ToEmailAddresses = ""; emailLog.VisitorIP = ""; emailLog.RequestUrl = ""; emailLog.ServerMessage = ""; emailLog.Message = body; try { var mailMessage = new MailMessage(); mailMessage.CopyFrom(message); var returnStr = ActiveUp.Net.Mail.SmtpClient.DirectSend(message); if (!string.IsNullOrEmpty(returnStr)) { emailLog.ServerMessage = returnObj?.Error?.Message; if (emailLog.ServerMessage == null) { emailLog.ServerMessage = ""; } EmailsMapper.Insert(emailLog); } return(returnObj); } catch (Exception ex) { ErrorHelper.LogException(ex); returnObj.Error = ErrorHelper.CreateError(ex); emailLog.ServerMessage = returnObj?.Error?.Message; if (emailLog.ServerMessage == null) { emailLog.ServerMessage = ""; } EmailsMapper.Insert(emailLog); return(returnObj); } }
public static Return Send(string fromEmailAddress, IEnumerable <MailAddress> emailAddresses, string subject, string body, EmailMode emailMode = EmailMode.Both, bool bcc = true) { System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; Return returnObj = new Return(); var emailLog = new EmailLog(); if (emailMode == EmailMode.Both || emailMode == EmailMode.Smtp) { try { MailMessage message = new MailMessage(); foreach (MailAddress address in emailAddresses) { if (bcc) { message.Bcc.Add(address); } else { message.To.Add(address); } } message.Sender = new MailAddress(fromEmailAddress); message.IsBodyHtml = true; message.Subject = subject; message.Body = body; emailLog = GetEmailLogFromMailMessage(message); System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(); client.Send(message); emailLog.ServerMessage = "Successfully sent email"; EmailsMapper.Insert(emailLog); return(returnObj); } catch (Exception ex) { ErrorHelper.LogException(ex); returnObj.Error = ErrorHelper.CreateError(ex); emailLog.ServerMessage = returnObj.Error.Message; EmailsMapper.Insert(emailLog); if (emailMode == EmailMode.Both) { var directSentReturn = SendDirectMessage(fromEmailAddress, emailAddresses, subject, body, bcc); if (directSentReturn.IsError) { return(directSentReturn); } else { returnObj = BaseMapper.GenerateReturn(); } } return(returnObj); } } else { return(SendDirectMessage(fromEmailAddress, emailAddresses, subject, body)); } }
public static Return BackupDatabase() { Return returnObj = BaseMapper.GenerateReturn(); var databaseName = BaseMapper.GetDataModel().Database.Connection.Database; var sqlCommand = $@"BACKUP DATABASE {databaseName} TO DISK = '{DbBackupPath}{DateTime.Now.ToString("yyyy-MM-dd_hh-mm-ss-tt")}-{databaseName}.bak'"; try { var result = BaseMapper.GetDataModel(true).Database.ExecuteSqlCommand(transactionalBehavior: System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, sql: sqlCommand); returnObj.SetRawData(result); return(returnObj); } catch (Exception ex) { ErrorHelper.LogException(ex); returnObj.Error = ErrorHelper.CreateError(ex); return(returnObj); } /*SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectionString); * string dbName = builder.InitialCatalog; * string backUpPath = URIHelper.BasePath + "App_Data/DBBackups/" + DateTime.Now.ToString("yyyy'-'MM'-'dd-HH'-'mm'-'ss'Z'") + "-" + dbName + ".bak"; * * using (SqlConnection cnn = new SqlConnection(connectionString)) * { * cnn.Open(); * dbName = cnn.Database.ToString(); * * ServerConnection sc = new ServerConnection(cnn); * Server sv = new Server(sc); * * // Create backup device item for the backup * BackupDeviceItem bdi = new BackupDeviceItem(backUpPath, DeviceType.File); * * // Create the backup informaton * Microsoft.SqlServer.Management.Smo.Backup bk = new Backup(); * * //bk.PercentComplete += new PercentCompleteEventHandler(percentComplete); * bk.Devices.Add(bdi); * bk.Action = BackupActionType.Database; * bk.PercentCompleteNotification = 1; * bk.BackupSetDescription = dbName; * bk.BackupSetName = dbName; * bk.Database = dbName; * * //bk.ExpirationDate = DateTime.Now.AddSeconds(10); * bk.LogTruncation = BackupTruncateLogType.Truncate; * bk.FormatMedia = false; * bk.Initialize = true; * bk.Checksum = true; * bk.ContinueAfterError = true; * bk.Incremental = false; * * try * { * // Run the backup * bk.SqlBackup(sv);//Exception * return returnObj; * } * catch (Exception ex) * { * ErrorHelper.LogException(ex); * * returnObj.Error = ErrorHelper.CreateError(ex); * * return returnObj; * } * }*/ }