private void AppService_OnNewOffer(Core.Models.Offer offer) { log.Trace("New offer event"); var config = Config; if (config.OnlyShowOffersOfCurrentLeague && config.CurrentLeague != offer.League) { return; } if (!offer.IsOutgoing) { AudioService.Instance.PlayNotif1(); } App.Current.Dispatcher.Invoke(delegate { if (!offer.IsOutgoing) { if (Offers.Count >= 8) { OverflowOffers.Enqueue(new Offer(offer)); } else { Offers.Add(new Offer(offer)); } } else { if (OutgoingOffers.Count >= 8) { var buffer = OutgoingOffers.ToList(); OverflowOutgoingOffers.Enqueue(buffer.Last()); buffer.RemoveAt(buffer.Count - 1); OutgoingOffers.Clear(); buffer.ForEach(o => OutgoingOffers.Add(o)); OutgoingOffers.Add(new Offer(offer)); ReorderOutgoingOffers(); } else { OutgoingOffers.Add(new Offer(offer)); ReorderOutgoingOffers(); } } OnPropertyChanged("IsOffersFilterVisible"); OnPropertyChanged("IsOutgoingOffersFilterVisible"); }); }
public Offer(Core.Models.Offer offer) { this.Id = offer.Id; this.ItemName = offer.ItemName; this.EscapedName = offer.EscapedName; this.PlayerName = offer.PlayerName; this.Time = offer.Time; this.Currency = offer.Currency; this.CurrencyImageLink = offer.CurrencyImageLink; this.Price = offer.Price; this.League = offer.League; this.IsOutgoing = offer.IsOutgoing; StashTab = offer.StashTab; Position = offer.Position; Notes = offer.Notes; }