protected void SavePageContent(PageContent pageContent) { var info = pageContent.MemoInfo; var canvas = pageContent.EditorCanvas; if (pageContent.IsModified) { MemoSerializeUtil.SaveEditor(info.MementoId, canvas); var memo = canvas.EditorContent as Memo; _facade.Container.SaveExtendedTextData(memo, "FullText", canvas.GetFullText()); _facade.Container.SaveExtendedTextData(memo, "SummaryText", MemoTextUtil.GetSummaryText(canvas)); MemoMarkUtil.SaveMarkIdsCache(memo, MemoMarkUtil.GetMemoMarkIds(memo)); MemoOutlineUtil.SaveOutline(pageContent.EditorCanvas); pageContent.IsModified = false; } }
//private void _saveSelectedAsEmfToolStripMenuItem_Click(object sender, EventArgs e) { // if (_currentEditorCanvas == null) { // return; // } // var dialog = new SaveFileDialog(); // dialog.RestoreDirectory = true; // dialog.ShowHelp = true; // dialog.Filter = "EMF Files(*.emf)|*.emf"; // if (dialog.ShowDialog(this) == DialogResult.OK) { // _currentEditorCanvas.SaveSelectedAsEmf(dialog.FileName); // } // dialog.Dispose(); //} //private void _saveSelectedAsPngToolStripMenuItem_Click(object sender, EventArgs e) { // if (_currentEditorCanvas == null) { // return; // } // var dialog = new SaveFileDialog(); // dialog.RestoreDirectory = true; // dialog.ShowHelp = true; // dialog.Filter = "PNG Files(*.png)|*.png"; // if (dialog.ShowDialog(this) == DialogResult.OK) { // _currentEditorCanvas.SaveSelectedAsPng(dialog.FileName); // } // dialog.Dispose(); //} private void _sendMailToolStripMenuItem_Click(object sender, EventArgs e) { try { using (var dialog = new SendMailForm()) { dialog.Font = _theme.CaptionFont; dialog.Subject = _PageContent.MemoInfo.Title; dialog.From = _app.WindowSettings.MailFrom; dialog.To = _app.WindowSettings.MailTo; dialog.SmtpServer = _app.WindowSettings.SmtpServer; dialog.SmtpPort = _app.WindowSettings.SmtpPort; dialog.SmtpEnableAuth = _app.WindowSettings.SmtpEnableAuth; dialog.SmtpUserName = _app.WindowSettings.SmtpUserName; dialog.SmtpPassword = CryptoUtil.DecryptSmtpPassword(_app.WindowSettings.SmtpPassword); dialog.SmtpEnableSsl = _app.WindowSettings.SmtpEnableSsl; if (dialog.ShowDialog(this) == DialogResult.OK) { var client = new SmtpClient(dialog.SmtpServer, dialog.SmtpPort); if (dialog.SmtpEnableAuth) { client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(dialog.SmtpUserName, dialog.SmtpPassword); } else { client.UseDefaultCredentials = true; } client.EnableSsl = dialog.SmtpEnableSsl; client.Timeout = 100000; client.SendCompleted += HandleSmtpClientSendComplete; var msg = new MailMessage(dialog.From, dialog.To); /// HandleSmtpClientSendCompleteでDispose()される msg.BodyEncoding = Encoding.UTF8; msg.Subject = dialog.Subject; switch (dialog.Body) { case SendMailForm.BodyKind.Text: msg.Body = MemoTextUtil.GetText(_currentEditorCanvas, null, false); client.SendAsync(msg, msg); break; case SendMailForm.BodyKind.Image: using (var img = _currentEditorCanvas.CreateBitmap(1f, Size.Empty)) { var conv = new ImageConverter(); var bytes = (byte[])conv.ConvertTo(img, typeof(byte[])); var mem = new MemoryStream(bytes); var args = new DisposableBundle(new IDisposable[] { msg, mem, }); msg.Attachments.Add(new Attachment(mem, "note.png")); client.SendAsync(msg, args); } break; case SendMailForm.BodyKind.TextAndImage: msg.Body = MemoTextUtil.GetText(_currentEditorCanvas, null, false); using (var img = _currentEditorCanvas.CreateBitmap(1f, Size.Empty)) { var conv = new ImageConverter(); var bytes = (byte[])conv.ConvertTo(img, typeof(byte[])); var mem = new MemoryStream(bytes); var args = new DisposableBundle(new IDisposable[] { msg, mem, }); msg.Attachments.Add(new Attachment(mem, "note.png")); client.SendAsync(msg, args); } break; } _app.WindowSettings.MailFrom = dialog.From; _app.WindowSettings.MailTo = dialog.To; _app.WindowSettings.SmtpServer = dialog.SmtpServer; _app.WindowSettings.SmtpPort = dialog.SmtpPort; _app.WindowSettings.SmtpEnableAuth = dialog.SmtpEnableAuth; _app.WindowSettings.SmtpUserName = dialog.SmtpUserName; _app.WindowSettings.SmtpPassword = CryptoUtil.EncryptSmtpPassword(dialog.SmtpPassword); _app.WindowSettings.SmtpEnableSsl = dialog.SmtpEnableSsl; } } } catch (Exception ex) { Logger.Warn("Can't send mail.", ex); MessageBox.Show( this, "メールの送信に失敗しました。" + Environment.NewLine + ex.Message, "メールの送信エラー", MessageBoxButtons.OK, MessageBoxIcon.Error ); } }