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); }
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(); }); } }