Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
        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
                                                    ));
            }
        }