private void UIConsultConnect(ToolStripMenuItem menu) { if (menu.Checked) { _consult.Disconnect(); } else { string port = _cfg.cfgConsultPort; string caption = String.Format("Consult init on port [{0}]", port); using (IProgressBar _progressForm = FormProgressBar.GetInstance(caption)) { _progressForm.ShowProgressBar(delegate() { try { _consult.Initialise(_cfg.cfgConsultPort); } catch (ConsultException ex) { string msg = String.Format("Connect to ECU on [{0}] failed!", port); HelperClass.Message(this, ex, msg, MessageBoxIcon.Error); _progressForm.StopProgressBar(); } }); } } InitializeConsultMenu(); }
/// <summary> /// Отсылает письмо на [email protected] /// </summary> /// <param name="message">Тело письма</param> /// <param name="attachments">Пути к прикрепляемым файлам</param> private void SendEmail(MailAddress replyAddress, string message, List <string> attachments) { do { string emailTo = "*****@*****.**"; SmtpClient smtp = new System.Net.Mail.SmtpClient(); smtp.Host = "smtp.mail.ru"; smtp.Port = 2525; smtp.EnableSsl = true; smtp.Timeout = 10; smtp.Credentials = new NetworkCredential(emailTo, "simple"); MailMessage msg = new MailMessage(emailTo, emailTo); //Добавляем аттачменты if (attachments != null) { MemoryStream st = HelperClass.CreateZipAttachement(attachments); ContentType ct = new ContentType(); ct.MediaType = MediaTypeNames.Application.Zip; ct.Name = "archive.zip"; st.Position = 0; msg.Attachments.Add(new Attachment(st, ct)); } msg.ReplyTo = replyAddress; msg.Subject = String.Format("Bug report: {0} [{1}<{2}>]", FormAboutBox.AssemblyProduct, replyAddress.DisplayName, replyAddress.Address); msg.Body = String.Format("{0}{1}\tv.{2}{0}{3}{0}{4}", Environment.NewLine, FormAboutBox.AssemblyProduct, FormAboutBox.AssemblyVersion, "____________________________________________________________", message); try { IProgressBar progress = FormProgressBar.GetInstance("Sending eMail..."); progress.ShowProgressBar(delegate() { smtp.Send(msg); }); HelperClass.Message(this, "Done!\nThank you for feedback!"); } catch (Exception ex) { string errDelivery = String.Format("Ошибка при отправке:{0}{1}{0}{0}Повторить?", Environment.NewLine, HelperClass.GetExceptionInfo(ex)); if (MessageBox.Show(this, errDelivery, "Error", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes) { continue; } } break; } while (true); }
/// <summary> /// Сархивировать файлы в MemoryStream /// </summary> /// <param name="attachments">Список файлов</param> /// <returns>Поток данных</returns> public static MemoryStream CreateZipAttachement(List <string> attachments) { _progressZip = FormProgressBar.GetInstance("Packing log file..."); MemoryStream st = new MemoryStream(); ZipFile zip = new ZipFile(); lock (_progressZip) { foreach (string file in attachments) { try { zip.AddFile(file, ""); } catch { } } _progressZip.ShowProgressBar(delegate() { zip.Save(st); }); } _progressZip.Dispose(); _progressZip = null; return(st); }
private void ConsultConnect(COMPortName comPort = null) { StatusLabel(StatusCommunications.Search, lblStatusConsult); StatusLabel(StatusCommunications.Search, cbConsultPort); string port = comPort == null ? "" : comPort.PortName; _consultECUInfo = null; //Если Класса не существует - внештатная ситуация if (_consult == null) { throw new NullReferenceException("Не создан экземпляр класса Consult!"); } //Порт пуст. будем искать консульт на всех свободных портах if (String.IsNullOrEmpty(port)) { if (!_consult.IsOnline) { List <COMPortName> lstAccesiblePorts = COMPortName.GetPortNames(true); using (IProgressBar progressCOMSearch = FormProgressBar.GetInstance("Initialize consult on ")) { progressCOMSearch.ShowProgressBar(delegate() { foreach (COMPortName i in lstAccesiblePorts) { progressCOMSearch.SetCurrentState(i.PortName); try { _consult.Initialise(i.PortName, true); _consultECUInfo = _consult.GetECUInfo(); break; } catch (ConsultException) { continue; } } }); } if (_consult.IsOnline) { StatusLabel(StatusCommunications.Found, lblStatusConsult, _consultECUInfo.ToString()); StatusLabel(StatusCommunications.Found, cbConsultPort, _consultECUInfo.ToString()); port = _consult.COMPort; _consult.Disconnect(); ComboBoxSelectedIndexUpdate(new COMPortName(_consult.COMPort), cbConsultPort); } else { StatusLabel(StatusCommunications.NotFound, lblStatusConsult); StatusLabel(StatusCommunications.NotFound, cbConsultPort); } } } //выбран конкретный порт else { try { //выбранный порт отличается от того по которому сейчас работает консульт //выбранный порт новый и consult уже подключен, отключимся if (port != _consult.COMPort && _consult.IsOnline) { _consult.Disconnect(); } using (IProgressBar progress = FormProgressBar.GetInstance("Consult initialization on " + port)) { progress.ShowProgressBar(delegate() { try { _consult.Initialise(port); _consultECUInfo = _consult.GetECUInfo(); StatusLabel(StatusCommunications.Found, lblStatusConsult, _consultECUInfo.ToString()); StatusLabel(StatusCommunications.Found, cbConsultPort, _consultECUInfo.ToString()); } catch (ConsultException ex) { StatusLabel(StatusCommunications.NotFound, lblStatusConsult, ex.Message); StatusLabel(StatusCommunications.NotFound, cbConsultPort, ex.Message); } }); } } catch (ConsultException ex) { StatusLabel(ex.Message, Color.Red, lblStatusConsult); StatusLabel(ex.Message, Color.Red, cbConsultPort); return; } } }