Esempio n. 1
0
        private Offer GetActiveOffer()
        {
            log.Trace("Getting active offer");
            var offer = Offers.FirstOrDefault(o => o.TradeRequestSent);

            return(offer == null?OutgoingOffers.FirstOrDefault(o => o.TradeRequestSent) : offer);
        }
Esempio n. 2
0
        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);
                    }
                }
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        private void ReorderOutgoingOffers()
        {
            var buffer = OutgoingOffers.ToList()
                         .OrderByDescending(o => o.Time);

            OutgoingOffers.Clear();

            foreach (var o in buffer)
            {
                OutgoingOffers.Add(o);
            }
        }
Esempio n. 5
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);
        }
Esempio n. 6
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");
            });
        }
Esempio n. 7
0
        public void ClearOutgoingOffers()
        {
            log.Trace("Clearing outgoing offers");
            AppService.Instance.FocusGame();
            OutgoingOffers.Clear();

            while (OverflowOutgoingOffers.Count > 0)
            {
                OutgoingOffers.Add(OverflowOutgoingOffers.Dequeue());
            }

            ReorderOutgoingOffers();

            OnPropertyChanged("IsOutgoingOffersFilterVisible");
        }
Esempio n. 8
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);
                }
            }
        }
Esempio n. 9
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();
                });
            }
        }
Esempio n. 10
0
        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");
        }