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)); } }
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)); } }