예제 #1
0
        private void ReorderOutgoingOffers()
        {
            var buffer = OutgoingOffers.ToList()
                         .OrderByDescending(o => o.Time);

            OutgoingOffers.Clear();

            foreach (var o in buffer)
            {
                OutgoingOffers.Add(o);
            }
        }
예제 #2
0
        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");
            });
        }
예제 #3
0
        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);
                }
            }
        }