private Offer GetActiveOffer() { log.Trace("Getting active offer"); var offer = Offers.FirstOrDefault(o => o.TradeRequestSent); return(offer == null?OutgoingOffers.FirstOrDefault(o => o.TradeRequestSent) : offer); }
public void ResetFilter(bool applyToOutgoing = true) { log.Trace($"Resetting filter {(applyToOutgoing ? "Outgoing" : "Incoming")} offers"); if (applyToOutgoing) { if (_outgoingOffers != null) { OutgoingOffers.Clear(); foreach (var offer in _outgoingOffers) { OutgoingOffers.Add(offer); } } } else { if (_offers != null) { Offers.Clear(); foreach (var offer in _offers) { Offers.Add(offer); } } } }
public Offer GetOffer(int id) { log.Trace($"Getting offer {id}"); var offer = Offers.FirstOrDefault(e => e.Id == id); return(offer == null?OutgoingOffers.FirstOrDefault(e => e.Id == id) : offer); }
private void ReorderOutgoingOffers() { var buffer = OutgoingOffers.ToList() .OrderByDescending(o => o.Time); OutgoingOffers.Clear(); foreach (var o in buffer) { OutgoingOffers.Add(o); } }
private int GetOfferIndex(int id) { log.Trace($"Getting offer's index {id}"); int index = Offers.Select(g => g.Id) .ToList() .IndexOf(id); return(index == -1 ? OutgoingOffers.Select(g => g.Id) .ToList() .IndexOf(id) : index); }
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 void ClearOutgoingOffers() { log.Trace("Clearing outgoing offers"); AppService.Instance.FocusGame(); OutgoingOffers.Clear(); while (OverflowOutgoingOffers.Count > 0) { OutgoingOffers.Add(OverflowOutgoingOffers.Dequeue()); } ReorderOutgoingOffers(); OnPropertyChanged("IsOutgoingOffersFilterVisible"); }
public void FilterOffers(string searchText, bool applyToOutgoing = true) { log.Trace($"Filtering {(applyToOutgoing ? "Outgoing" : "Incoming")} offers with {searchText}"); searchText = searchText.ToLower().Trim(); ResetFilter(applyToOutgoing); if (applyToOutgoing) { var results = OutgoingOffers.ToList().FindAll(e => e.ItemName.ToLower().IndexOf(searchText) != -1 || e.PlayerName.ToLower().IndexOf(searchText) != -1); if (_outgoingOffers == null) { _outgoingOffers = new Offer[OutgoingOffers.Count]; } OutgoingOffers.CopyTo(_outgoingOffers, 0); OutgoingOffers.Clear(); foreach (var r in results) { OutgoingOffers.Add(r); } } else { var results = Offers.ToList().FindAll(e => e.ItemName.ToLower().IndexOf(searchText) != -1 || e.PlayerName.ToLower().IndexOf(searchText) != -1); if (_offers == null) { _offers = new Offer[Offers.Count]; } Offers.CopyTo(_offers, 0); Offers.Clear(); foreach (var r in results) { Offers.Add(r); } } }
public void RemoveOffer(int id, bool isOutgoing = false) { log.Trace($"Removing offer {id}"); int index = isOutgoing ? OutgoingOffers.Select(e => e.Id) .ToList() .IndexOf(id) : Offers.Select(e => e.Id) .ToList() .IndexOf(id); if (index != -1) { App.Current.Dispatcher.Invoke(() => { var refOffers = (isOutgoing ? OutgoingOffers : Offers); refOffers.RemoveAt(index); if (refOffers.Count < 8) { if (isOutgoing) { if (OverflowOutgoingOffers.Count > 0) { OutgoingOffers.Add(OverflowOutgoingOffers.Dequeue()); ReorderOutgoingOffers(); } } else { if (OverflowOffers.Count > 0) { Offers.Add(OverflowOffers.Dequeue()); } } } UpdateOffers(); AppService.Instance.FocusGame(); }); } }
private void UpdateOffers() { log.Trace("Updating offers"); Offer[] buffer = new Offer[Offers.Count]; Offers.CopyTo(buffer, 0); Offers.Clear(); foreach (var o in buffer) { Offers.Add(o); } Offer[] buffer2 = new Offer[OutgoingOffers.Count]; OutgoingOffers.CopyTo(buffer2, 0); OutgoingOffers.Clear(); foreach (var o in buffer2) { OutgoingOffers.Add(o); } OnPropertyChanged("IsOffersFilterVisible"); OnPropertyChanged("IsOutgoingOffersFilterVisible"); }