Пример #1
0
        public void ExecuteSetMessagesReadMarkByDate(ICommandContext context)
        {
            using (var mmrf = new MarkMsgReadForm(context))
            {
                var owner = context
                            .GetRequiredService <IUIShell>()
                            .GetMainWindowParent();

                if (mmrf.ShowDialog(owner) != DialogResult.OK)
                {
                    return;
                }

                var msgText = SR.Forum.MarkMessageCaption;
                var resText = string.Empty;

                // Заносим данные в замыкание, так как после диспоза формы часть
                // данный теряется.
                var forumIds =
                    mmrf.MarkAllForums
                                                ? Enumerable.Empty <int>()
                                                : mmrf.ForumsIdsForMark;
                ProgressWorker.Run(context, false,
                                   pi =>
                {
                    pi.SetProgressText(msgText);

                    context.LogInfo(msgText);

                    var markCount =
                        ForumHelper.MarkMessagesByDate(
                            context,
                            forumIds,
                            mmrf.MarkAsRead,
                            mmrf.BeforeDate,
                            mmrf.AfterDate,
                            mmrf.ExceptAnswersMe);

                    resText = SR.Forum.MarkMessageResult.FormatStr(
                        markCount,
                        markCount.GetDeclension(
                            SR.Forum.Message1,
                            SR.Forum.Message2,
                            SR.Forum.Message5));

                    context.LogInfo(resText);
                },
                                   () => MessageBox.Show(
                                       owner,
                                       resText,
                                       ApplicationInfo.ApplicationName,
                                       MessageBoxButtons.OK,
                                       MessageBoxIcon.Information));
            }
        }
Пример #2
0
        public void ExecuteSetMessagesReadMarkByDate(ICommandContext context)
        {
            using (var mmrf = new MarkMsgReadForm(context))
            {
                var owner = context
                    .GetRequiredService<IUIShell>()
                    .GetMainWindowParent();

                if (mmrf.ShowDialog(owner) != DialogResult.OK)
                    return;

                var msgText = SR.Forum.MarkMessageCaption;
                var resText = string.Empty;

                // Заносим данные в замыкание, так как после диспоза формы часть
                // данный теряется.
                var forumIds =
                    mmrf.MarkAllForums
                        ? Enumerable.Empty<int>()
                        : mmrf.ForumsIdsForMark;
                ProgressWorker.Run(context, false,
                    pi =>
                    {
                        pi.SetProgressText(msgText);

                        context.LogInfo(msgText);

                        var markCount =
                            ForumHelper.MarkMessagesByDate(
                                context,
                                forumIds,
                                mmrf.MarkAsRead,
                                mmrf.BeforeDate,
                                mmrf.AfterDate,
                                mmrf.ExceptAnswersMe);

                        resText = SR.Forum.MarkMessageResult.FormatStr(
                            markCount,
                            markCount.GetDeclension(
                                SR.Forum.Message1,
                                SR.Forum.Message2,
                                SR.Forum.Message5));

                        context.LogInfo(resText);
                    },
                    () => MessageBox.Show(
                        owner,
                        resText,
                        ApplicationInfo.ApplicationName,
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Information));
            }
        }