Eliminate Annotation changes from Change Reports
Dialog for Email Error Log
This commit is contained in:
167
PROMS/Volian.Controls.Library/frmSendErrorLog.cs
Normal file
167
PROMS/Volian.Controls.Library/frmSendErrorLog.cs
Normal file
@@ -0,0 +1,167 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using LBOutlookLibrary;
|
||||
using System.Reflection;
|
||||
using VEPROMS.CSLA.Library;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Net.Mail;
|
||||
using System.Net;
|
||||
using System.IO;
|
||||
|
||||
namespace Volian.Controls.Library
|
||||
{
|
||||
public partial class frmSendErrorLog : Form
|
||||
{
|
||||
private string _ErrorLogPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\ErrorLog.txt";
|
||||
public bool OutlookEmail
|
||||
{
|
||||
get { return rbOutlook.Checked; }
|
||||
set
|
||||
{
|
||||
if (value)
|
||||
rbOutlook.Checked = true;
|
||||
else
|
||||
rbManual.Checked = true;
|
||||
}
|
||||
}
|
||||
public string SMTPServer
|
||||
{
|
||||
get { return tbServer.Text; }
|
||||
set { tbServer.Text = value; }
|
||||
}
|
||||
public string SMTPUser
|
||||
{
|
||||
get { return tbUsername.Text; }
|
||||
set { tbUsername.Text = value; }
|
||||
}
|
||||
public frmSendErrorLog(bool outlookEmail, string smtpServer, string smtpUser)
|
||||
{
|
||||
InitializeComponent();
|
||||
tbPassword.PasswordChar = '\u25CF';
|
||||
OutlookEmail = outlookEmail;
|
||||
SMTPServer = smtpServer;
|
||||
SMTPUser = smtpUser;
|
||||
}
|
||||
|
||||
private void emailSettingChanged(object sender, EventArgs e)
|
||||
{
|
||||
tbServer.Enabled = tbUsername.Enabled = tbPassword.Enabled =
|
||||
lblServer.Enabled = lblUsername.Enabled = lblPassword.Enabled = rbManual.Checked;
|
||||
}
|
||||
|
||||
private void btnSend_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (OutlookEmail)
|
||||
{
|
||||
if (SendOutlookEmail())
|
||||
{
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (SendSMTPEmail())
|
||||
{
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
private bool SendSMTPEmail()
|
||||
{
|
||||
FileStream fs = null;
|
||||
try
|
||||
{
|
||||
MailMessage mm = new MailMessage();
|
||||
mm.From = new MailAddress(SMTPUser);
|
||||
mm.To.Add("support@volian.com");
|
||||
//mm.To.Add("rmark@epix.net");
|
||||
//mm.To.Add("jcbodine@gmail.com");
|
||||
mm.Subject = "PROMS Error Log " + DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss");
|
||||
mm.Body = Header + "\r\n\r\n" + tbContent.Text;
|
||||
fs = File.Open(_ErrorLogPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
|
||||
mm.Attachments.Add(new Attachment(fs, "ErrorLog.txt"));
|
||||
SmtpClient sc = new SmtpClient(SMTPServer);
|
||||
sc.EnableSsl = true;
|
||||
sc.Credentials = new NetworkCredential(SMTPUser, tbPassword.Text);
|
||||
sc.Send(mm);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
fs.Close();
|
||||
}
|
||||
}
|
||||
public string Header
|
||||
{
|
||||
get
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
//sb.Append("PROMS\t\tVersion: ");
|
||||
sb.AppendLine("PROMS");
|
||||
sb.Append("Version: ");
|
||||
sb.Append(AssemblyVersion);
|
||||
DateTime buildDateTime = new System.IO.FileInfo(Assembly.GetExecutingAssembly().Location).LastWriteTime;
|
||||
sb.AppendLine(String.Format("\t\tBuild Date: {0}", buildDateTime.ToString()));
|
||||
string connectionString = Database.VEPROMS_Connection;
|
||||
Match mServer = Regex.Match(connectionString, ".*Data Source=([^;]*).*");
|
||||
string server = (mServer.Success) ? mServer.Groups[1].Value : "unknown";
|
||||
if (server.StartsWith(@".\")) server = @"Local \ " + server.Substring(2);
|
||||
string databaseName = Database.SelectedDatabase;
|
||||
sb.Append(string.Format("SQL Server: {0}", server));
|
||||
sb.AppendLine(string.Format("\t\tDatabase: {0}", databaseName));
|
||||
if (OutlookEmail)
|
||||
sb.AppendLine("sent via outlook");
|
||||
else
|
||||
sb.AppendLine("sent via manual settings");
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
private bool SendOutlookEmail()
|
||||
{
|
||||
try
|
||||
{
|
||||
LBApplicationClass app = new LBApplicationClass();
|
||||
LBMailItemClass msg = app.CreateMailItem();
|
||||
msg.Recipients.Add("support@volian.com");
|
||||
//msg.Recipients.Add("rmark@epix.net");
|
||||
//msg.Recipients.Add("jcbodine@gmail.com");
|
||||
//msg.To = "jcbodine@gmail.com";//"rmark@epix.net";
|
||||
//msg.Recipients.Add("jcbodine@gmail.com");
|
||||
msg.Subject = "PROMS Error Log " + DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss");
|
||||
msg.BodyFormat = LBOlBodyFormat.olFormatPlain;
|
||||
msg.Body = Header + "\r\n\r\n" + tbContent.Text;
|
||||
msg.AddAttachment(_ErrorLogPath);
|
||||
msg.Send();
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (ex.Message.ToLower().Contains("failed due to the following error: 80080005"))
|
||||
MessageBox.Show("You cannot send email via a running instance of Outlook from VE PROMS running from within Visual Studio.");
|
||||
else
|
||||
MessageBox.Show(string.Format("{0} - {1}", ex.GetType().Name, ex.Message));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public string AssemblyVersion
|
||||
{
|
||||
get
|
||||
{
|
||||
return Application.ProductVersion;
|
||||
return Assembly.GetExecutingAssembly().GetName().Version.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user