private async void RemoveEvent(object sender, VoidTraderNotificationEventArgs e) { await AsyncHelpers.RedirectToMainThread(); foreach (var trader in e.Notifications) { Tools.Logging.Send(LogLevel.Info, $"Удаляю торговца [{trader.Character}] {trader.Id.Oid}!", param: trader); } traders.RemoveAll(e.Notifications.Select(trader => TryGetTraderById(trader.Id)).Where(trader => trader != null)); }
void RemoveAllItems <ItemVM>(IEnumerable <ItemVM> items) { Tools.Logging.Send(LogLevel.Info, $"Управление нотификациями: удаляю группу"); var notificationsToRemove = new List <UserNotification>(); foreach (var i in items) { if (!sourceToNotificationMapping.TryGetValue(i, out var notification)) { continue; } sourceToNotificationMapping.Remove(i); notificationsToRemove.Add(notification); Tools.Logging.Send(LogLevel.Info, $"Управление нотификациями: удаляю нотификацию \"{notification}\"!"); } Tools.Logging.Send(LogLevel.Info, $"Управление нотификациями: группа удалена"); notifications.RemoveAll(notificationsToRemove); }
protected virtual void RemoveEventImpl(IReadOnlyCollection <ItemModel> removedItems) { LogRemoved(removedItems); items.RemoveAll(removedItems.Select(TryGetItemByModel).Where(item => items != null)); }