public void SendMessage(Client Client, string Subject, string Message, string login, string password, out string sendedClient) { Thread.Sleep(500); try { if (!IsValidEmail(login) || string.IsNullOrWhiteSpace(password) || string.IsNullOrEmpty(password)) { throw new FormatException(); } MailAddress MailFrom = new MailAddress(login); if (IsValidEmail(Client.ClientEmail)) { MailAddress MailTo = new MailAddress(Client.ClientEmail); MailMessage mailMessage = new MailMessage(MailFrom, MailTo); mailMessage.Subject = Subject; mailMessage.Body = Message; SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587); smtp.Credentials = new NetworkCredential(login, password); smtp.EnableSsl = true; smtp.Send(mailMessage); sendedClient = Client.ToString(); } else { messager.ErrorMessage(string.Format("У клиента \"{0}\" введен некорректный email: \"{1}\"{2}{2}Сообщение клиенту \"{0}\" не отправлено!", Client, Client.ClientEmail, Environment.NewLine )); sendedClient = string.Empty; }; } catch (SmtpException) { messager.ErrorMessage("Возникла ошибка при прохождении проверки логина и пароля отправителя. Пожалуйста проверьте введенные вами данные и повторите попытку."); throw new SmtpException(); } catch (FormatException) { messager.ErrorMessage("Введен некорректный email-адресс отправки! Пожалуйста проверьте email и повторите попытку."); throw new FormatException(); } }
public void CreateReport(DataTable data, string saveToPath) { if (data == null) { messager.ErrorMessage("Ошибка получения отчетной таблицы! Повторите попытку или обратитесь к разработчику."); return; } if (string.IsNullOrEmpty(saveToPath) || string.IsNullOrWhiteSpace(saveToPath)) { messager.ErrorMessage(string.Format("Ошибка в указанном пути файла:{1}\"{0}\",{1}укажите правильный путь и имя файла!", saveToPath, Environment.NewLine )); return; } if (!Directory.Exists(Path.GetDirectoryName(saveToPath))) { Directory.CreateDirectory(Path.GetDirectoryName(saveToPath)); } try { Excel.Application eApp = new Excel.Application(); Excel.Workbook wBook = eApp.Workbooks.Add(); Excel.Worksheet wSheet = wBook.Worksheets.Add(); for (int i = 0; i < data.Columns.Count; i++) { var header = data.Columns[i].ColumnName; header = header.Replace("-", " "); wSheet.Cells[1, i + 1] = header; } for (int i = 0; i < data.Rows.Count; i++) { for (int j = 0; j < data.Columns.Count; j++) { wSheet.Cells[i + 2, j + 1] = data.Rows[i][j]; } } //finding a last cell Excel.Range r1 = wSheet.Cells.get_End(Excel.XlDirection.xlToRight); Excel.Range r2 = wSheet.Cells.get_End(Excel.XlDirection.xlDown); string rightEnd = r1.get_Address().Split('$')[1]; //letter string bottomEnd = r2.get_Address().Split('$')[2]; //number //last cell address string lastCell = rightEnd + bottomEnd; //painting grid List <Excel.XlBordersIndex> borders = new List <Excel.XlBordersIndex>() { Excel.XlBordersIndex.xlEdgeRight, Excel.XlBordersIndex.xlEdgeLeft, Excel.XlBordersIndex.xlEdgeBottom, Excel.XlBordersIndex.xlEdgeTop, Excel.XlBordersIndex.xlInsideHorizontal, Excel.XlBordersIndex.xlInsideVertical }; foreach (Excel.XlBordersIndex brd in borders) { Excel.Range r = wSheet.get_Range("A1", lastCell); r.Borders[brd].Weight = Excel.XlBorderWeight.xlThin; r.Borders[brd].LineStyle = Excel.XlLineStyle.xlContinuous; r.Borders[brd].ColorIndex = 0; } wSheet.get_Range("A1", lastCell).Font.Size = 14; wSheet.Columns.AutoFit(); wBook.SaveAs(saveToPath); eApp.Visible = true; } catch { messager.ErrorMessage(string.Format("Ошибка создания документа Microsoft Office Excel - \"{0}\"{1}{1}Обратитесь к разработчику!", Path.GetFileName(saveToPath), Environment.NewLine )); } }