예제 #1
0
        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));
        }
예제 #2
0
        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);
        }
예제 #3
0
        // 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);
                    }
                }
            }
        }