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)); }
private async void AddEvent(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); } AddEventimpl(e.Notifications); }
// TODO: этот код исходит из наличия только одного торговца, нужно переделать private async void ChangeEvent(object sender, VoidTraderNotificationEventArgs e) { await AsyncHelpers.RedirectToMainThread(); foreach (var trader in e.Notifications) { Tools.Logging.Send(LogLevel.Debug, $"Изменяю торговца [{trader.Character}] {trader.Id.Oid}!", param: trader); if (trader.Manifest == null) { Items.Clear(); } else { // TODO: почему добавляются все? нужно по идее только изменённые foreach (var manifest in trader.Manifest) { var manifestVM = new VoidItemViewModel(manifest, FiltersEvent); Items.Add(manifestVM); } } } }