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