Ejemplo n.º 1
0
        /// <summary>
        /// Log out from current account
        /// </summary>
        private void Logout()
        {
            _updater.Stop();
            StopIdle();

            IsAuthorized = false;

            // Clear the account settings
            Storage.SessionId        = string.Empty;
            Storage.SteamLoginSecure = string.Empty;
            Storage.SteamParental    = string.Empty;
            UserName                      =
                ProfileUrl                =
                    Level                 =
                        AvatarUrl         =
                            BackgroundUrl = null;
            FavoriteBadge                 = null;
            Storage.IdleMode              = 0;
            Storage.BadgeFilter           =
                Storage.ShowcaseFilter    = string.Empty;

            AllBadges.Clear();
            IdleQueueBadges.Clear();

            Storage.Save();

            foreach (var showcase in AllShowcases)
            {
                showcase.IsCompleted = false;
                showcase.CanCraft    = false;
                showcase.IsOwned     = false;
            }
            Logger.Info("See you later");
        }
Ejemplo n.º 2
0
 public void RemoveBadge(BadgeModel badge)
 {
     badge.RemainingCard = 0;
     AllBadges.Remove(badge);
     IdleQueueBadges.Remove(badge);
     badge.PropertyChanged -= BadgeIdleStatusChanged;
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Removes all selected badges from idle queue
 /// </summary>
 private void DequeueAll()
 {
     foreach (BadgeModel badge in Badges.OfType <BadgeModel>().Where(b => b.IsInQueue))
     {
         IdleQueueBadges.Remove(badge);
         badge.IsInQueue = false;
     }
 }
Ejemplo n.º 4
0
        private bool CanEnqueueBadge(object o)
        {
            var badge = o as BadgeModel;

            if (badge == null)
            {
                return(false);
            }
            return(IdleQueueBadges.Contains(badge) == false);
        }
Ejemplo n.º 5
0
        private void DequeueBadge(object o)
        {
            var badge = o as BadgeModel;

            if (badge == null)
            {
                return;
            }
            IdleQueueBadges.Remove(badge);
            badge.IsInQueue = false;
        }
Ejemplo n.º 6
0
        private void EnqueueBadgeLow(object o)
        {
            var badge = o as BadgeModel;

            if (badge == null)
            {
                return;
            }
            IdleQueueBadges.Add(badge);
            badge.IsInQueue = true;
        }
Ejemplo n.º 7
0
        private void EnqueueBadgeHigh(object o)
        {
            var badge = o as BadgeModel;

            if (badge == null)
            {
                return;
            }
            IdleQueueBadges.Insert(0, badge);
            badge.IsInQueue = true;
        }
Ejemplo n.º 8
0
        private void SetPriority(object o, int priority)
        {
            var badge = o as BadgeModel;

            if (badge == null)
            {
                return;
            }

            int idx = IdleQueueBadges.IndexOf(badge);

            IdleQueueBadges.RemoveAt(idx);
            IdleQueueBadges.Insert(idx + priority, badge);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Adds selected badges to idle queue
        /// </summary>
        /// <param name="parameter"></param>
        private void EnqueueAll(object parameter)
        {
            var order = (string)parameter;
            // depending on parameter, insert badge on top or append
            int idx = order == "0" ? 0 : IdleQueueBadges.Count;

            foreach (BadgeModel badge in Badges)
            {
                if (IdleQueueBadges.Contains(badge) == false)
                {
                    IdleQueueBadges.Insert(idx, badge);
                    badge.IsInQueue = true;
                    idx++;
                }
            }
        }
Ejemplo n.º 10
0
        private async Task Proceed()
        {
            if (_currentMode == IdleMode.All)
            {
                foreach (BadgeModel badge in IdleQueueBadges)
                {
                    await AddGame(badge);
                }
            }
            else if (_currentMode == IdleMode.PeriodicSwitch)
            {
                var repeats     = 0;
                var repeatCount = Math.Max(PeriodicSwitchRepeatCount, (byte)1);

                int sec = Math.Max(SwitchMinutes * 60 + SwitchSeconds, AppConstants.DefaultSwitchSeconds);
                var ts  = TimeSpan.FromSeconds(sec);

                do
                {
                    repeats++;
                    int idx = 0;
                    while (idx < IdleQueueBadges.Count && IsActive)
                    {
                        var badge = IdleQueueBadges[idx];

                        badge.CardIdleProcess.Start();

                        await Task.Delay(ts);

                        badge.CardIdleProcess.Stop();

                        await Task.Delay(4000);

                        idx++;
                    }
                }while (IsActive && (IdleQueueBadges.Count > 0) && (repeats < repeatCount));
            }
            else
            {
                var trial = IdleQueueBadges.Where(IsTrial).ToArray();

                if (_badgeBuffer.Count == 0)
                {
                    if (_currentMode == IdleMode.OneByOne)
                    {
                        var next = IdleQueueBadges.FirstOrDefault(b => b.RemainingCard > 0);
                        if (next != null)
                        {
                            await AddGame(next);
                        }
                    }
                    else
                    {
                        var next =
                            IdleQueueBadges.FirstOrDefault(b => IsTrial(b) == false && b.RemainingCard > 0);

                        if (Mode == IdleMode.TrialFirst && trial.Length > 0 || next == null)
                        {
                            await AddTrialGames(trial);
                        }

                        if (_badgeBuffer.Count == 0 && next != null)
                        {
                            await AddGame(next);
                        }
                    }
                }
                else
                {
                    await AddTrialGames(trial);
                }
            }

            if (_badgeBuffer.Count == 0)
            {
                IsActive = false;
                _tmCounter.Stop();
            }
        }