Example #1
0
        public MessageForm(
            [NotNull] IServiceProvider provider,
            MessageFormMode mode,
            MessageInfo message)
        {
            if (provider == null)
            {
                throw new ArgumentNullException("provider");
            }

            _serviceManager = new ServiceManager(provider);

            InitializeComponent();

            _formMode         = mode;
            _messageInfo      = message ?? new MessageInfo();
            _previewSourceNum = OutboxManager.RegisterPreviewSource(this);

            _serviceManager.Publish <IMessageEditorService>(
                new MessageEditorService(this));

            CustomInitializeComponent();

            _menuGenerator    = new StripMenuGenerator(_serviceManager, _menuStrip, "MessageEditor.Menu");
            _toolbarGenerator = new StripMenuGenerator(_serviceManager, _toolStrip, "MessageEditor.Toolbar");
            _tagsbarGenerator = new SmilesToolbarGenerator(_serviceManager, "Forum.MessageEditor.TagsBar", _tagsBar);

            _syntaxExtSvc = provider.GetRequiredService <IEditorSyntaxExtensibilityService>();
        }
Example #2
0
        public MessageForm(
            [NotNull] IServiceProvider provider,
            MessageFormMode mode,
            MessageInfo message)
        {
            if (provider == null)
                throw new ArgumentNullException("provider");

            _serviceManager = new ServiceManager(provider);

            InitializeComponent();

            _formMode = mode;
            _messageInfo = message ?? new MessageInfo();
            _previewSourceNum = OutboxManager.RegisterPreviewSource(this);

            _serviceManager.Publish<IMessageEditorService>(
                new MessageEditorService(this));

            CustomInitializeComponent();

            _menuGenerator = new StripMenuGenerator(_serviceManager, _menuStrip, "MessageEditor.Menu");
            _toolbarGenerator = new StripMenuGenerator(_serviceManager, _toolStrip, "MessageEditor.Toolbar");
            _tagsbarGenerator = new SmilesToolbarGenerator(_serviceManager, "Forum.MessageEditor.TagsBar", _tagsBar);

            _syntaxExtSvc = provider.GetRequiredService<IEditorSyntaxExtensibilityService>();
        }
Example #3
0
        private void SaveMessage(bool closeOnSave)
        {
            // subject validation
            if (_subjectTextBox.Text.Trim().Length == 0)
            {
                MessageBox.Show(
                    SR.MessageEditor.SubjectRequired,
                    ApplicationInfo.ApplicationName,
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            // fill object from controls
            if (_forumsComboBox.ForumId != -1)
            {
                _messageInfo.ForumId = _forumsComboBox.ForumId;
            }

            _messageInfo.Subject = _subjectTextBox.Text.Trim();
            _messageInfo.Message = _messageEditor.Text.Trim();

            if (!_messageInfo.Hold)
            {
                // overquote validation
                if (_quoteAnalyzer != null &&
                    _quoteAnalyzer.IsOverquoted(_messageEditor.Text))
                {
                    // Предлагаем вернуться к редактированию сообщения.
                    if (MessageBox.Show(
                            this,
                            SR.MessageEditor.QuoteWarning,
                            ApplicationInfo.ApplicationName,
                            MessageBoxButtons.YesNo,
                            MessageBoxIcon.Warning) != DialogResult.Yes)
                    {
                        return;
                    }
                }
            }

            if (_formMode == MessageFormMode.Add || _formMode == MessageFormMode.Reply)
            {
                OutboxHelper.AddOutboxMessage(_serviceManager, _messageInfo);

                if (!closeOnSave)
                {
                    using (var db = _serviceManager.CreateDBContext())
                        _messageInfo.ID = db.OutboxMessages().Max(m => m.ID);
                    _formMode = MessageFormMode.Edit;
                }

                _serviceManager.LogInfo(string.Format(
                                            SR.MessageEditor.LogNewMsg, _forumsComboBox.Text));
            }
            else
            {
                UpdateOutboxMessage(_messageInfo);
                _serviceManager.LogInfo(string.Format(
                                            SR.MessageEditor.LogChangeMsg, _forumsComboBox.Text));
            }

            _messageEditor.SetSavePoint();
            _subjectTextBox.Modified = false;
            OnIsModifiedChanged();

            if (MessageSent != null)
            {
                MessageSent(this, _messageInfo.ID);
            }

            if (closeOnSave)
            {
                NativeMethods.PostMessage(Handle, NativeMethods.WM_CLOSE, IntPtr.Zero, IntPtr.Zero);
            }

            _serviceManager.GetRequiredService <IOutboxManager>().NewMessages.Refresh();
        }
Example #4
0
        private void SaveMessage(bool closeOnSave)
        {
            // subject validation
            if (_subjectTextBox.Text.Trim().Length == 0)
            {
                MessageBox.Show(
                    SR.MessageEditor.SubjectRequired,
                    ApplicationInfo.ApplicationName,
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            // fill object from controls
            if (_forumsComboBox.ForumId != -1)
                _messageInfo.ForumId = _forumsComboBox.ForumId;

            _messageInfo.Subject = _subjectTextBox.Text.Trim();
            _messageInfo.Message = _messageEditor.Text.Trim();

            if (!_messageInfo.Hold)
            {
                // overquote validation
                if (_quoteAnalyzer != null
                    && _quoteAnalyzer.IsOverquoted(_messageEditor.Text))
                {
                    // Предлагаем вернуться к редактированию сообщения.
                    if (MessageBox.Show(
                        this,
                        SR.MessageEditor.QuoteWarning,
                        ApplicationInfo.ApplicationName,
                        MessageBoxButtons.YesNo,
                        MessageBoxIcon.Warning) != DialogResult.Yes)
                    {
                        return;
                    }
                }
            }

            if (_formMode == MessageFormMode.Add || _formMode == MessageFormMode.Reply)
            {
                OutboxHelper.AddOutboxMessage(_serviceManager, _messageInfo);

                if (!closeOnSave)
                {
                    using (var db = _serviceManager.CreateDBContext())
                        _messageInfo.ID = db.OutboxMessages().Max(m => m.ID);
                    _formMode = MessageFormMode.Edit;
                }

                _serviceManager.LogInfo(string.Format(
                    SR.MessageEditor.LogNewMsg, _forumsComboBox.Text));
            }
            else
            {
                UpdateOutboxMessage(_messageInfo);
                _serviceManager.LogInfo(string.Format(
                    SR.MessageEditor.LogChangeMsg, _forumsComboBox.Text));
            }

            _messageEditor.SetSavePoint();
            _subjectTextBox.Modified = false;
            OnIsModifiedChanged();

            if (MessageSent != null)
                MessageSent(this, _messageInfo.ID);

            if (closeOnSave)
                NativeMethods.PostMessage(Handle, NativeMethods.WM_CLOSE, IntPtr.Zero, IntPtr.Zero);

            _serviceManager.GetRequiredService<IOutboxManager>().NewMessages.Refresh();
        }
 public static void EditMessage(IServiceProvider provider, MessageFormMode mode, MessageInfo msgInfo)
 {
     new MessageForm(provider, mode, msgInfo).Show();
 }
Example #6
0
		public static void EditMessage(IServiceProvider provider, MessageFormMode mode, MessageInfo msgInfo)
		{
			new MessageForm(provider, mode, msgInfo).Show();
		}