private void Apply() { if (_forumListView.FocusedItem != null) { _forumListView.FocusedItem.SubItems[(int)Column.Priority].Text = _priority.Value.ToString(); } var subscriptionRequests = new List <ForumSubscriptionRequest>(); foreach (ListViewItem item in _forumListView.Items) { var forum = _forumList[(int)item.Tag]; if (forum.Subscribed != item.Checked) { subscriptionRequests.Add(new ForumSubscriptionRequest(forum.ID, item.Checked)); } var newPriority = int.Parse(item.SubItems[0].Text); if (item.Checked && forum.Priority != newPriority) { ForumsSubscriptionHelper.UpdateForumPriority(_provider, forum.ID, newPriority); } } if (subscriptionRequests.Count > 0) { ForumsSubscriptionHelper.UpdateForumsSubscriptions(_provider, subscriptionRequests, true); } //без рефреша возникало исключение если нажать "применить" потом "ок" RefreshForm(); }
public void ExecuteSubscribeOrUnsubscribeForum( ICommandContext context, int?forumId) { forumId = GetForumId(context, forumId); ForumsSubscriptionHelper.UpdateForumsSubscriptions( context, new[] { new ForumSubscriptionRequest( forumId.Value, !context.GetRequiredService <IRsdnForumService>().IsForumSubscribed(forumId.Value)) }, true); }