Example #1
0
        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;
            }
        }
Example #2
0
        //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
                    );
            }
        }