public ProgressionAchievements ProgessionLaunched()
        {
            ProgressionAchievements Result = new ProgressionAchievements();
            int Total    = 0;
            int Locked   = 0;
            int Unlocked = 0;

            try
            {
                foreach (var item in PluginDatabase)
                {
                    GameAchievements GameAchievements = item.Value;

                    if (GameAchievements.HaveAchivements && _PlayniteApi.Database.Games.Get(item.Key).Playtime > 0)
                    {
                        Total    += GameAchievements.Total;
                        Locked   += GameAchievements.Locked;
                        Unlocked += GameAchievements.Unlocked;
                    }
                }
            }
            catch (Exception ex)
            {
                Common.LogError(ex, "SuccessStroy", $"Error on ProgessionLaunched()");
            }

            Result.Total       = Total;
            Result.Locked      = Locked;
            Result.Unlocked    = Unlocked;
            Result.Progression = (Total != 0) ? (int)Math.Round((double)(Unlocked * 100 / Total)) : 0;

            return(Result);
        }
        public ProgressionAchievements ProgessionSource(Guid GameSourceId)
        {
            ProgressionAchievements Result = new ProgressionAchievements();
            int Total    = 0;
            int Locked   = 0;
            int Unlocked = 0;

            foreach (var item in PluginDatabase)
            {
                Guid             Id               = item.Key;
                Game             Game             = PlayniteApi.Database.Games.Get(Id);
                GameAchievements GameAchievements = item.Value;

                if (GameAchievements.HaveAchivements && Game.SourceId == GameSourceId)
                {
                    Total    += GameAchievements.Total;
                    Locked   += GameAchievements.Locked;
                    Unlocked += GameAchievements.Unlocked;
                }
            }

            Result.Total       = Total;
            Result.Locked      = Locked;
            Result.Unlocked    = Unlocked;
            Result.Progression = (Total != 0) ? (int)Math.Ceiling((double)(Unlocked * 100 / Total)) : 0;

            return(Result);
        }
        public ProgressionAchievements ProgessionSource(Guid GameSourceId)
        {
            ProgressionAchievements Result = new ProgressionAchievements();
            int Total    = 0;
            int Locked   = 0;
            int Unlocked = 0;

            try {
                foreach (var item in PluginDatabase)
                {
                    Guid             Id               = item.Key;
                    Game             Game             = _PlayniteApi.Database.Games.Get(Id);
                    GameAchievements GameAchievements = item.Value;

                    if (GameAchievements.HaveAchivements && Game.SourceId == GameSourceId)
                    {
                        Total    += GameAchievements.Total;
                        Locked   += GameAchievements.Locked;
                        Unlocked += GameAchievements.Unlocked;
                    }
                }
            }
            catch (Exception ex)
            {
                Common.LogError(ex, "SuccessStroy", $"Error on ProgessionSource()");
            }

            Result.Total       = Total;
            Result.Locked      = Locked;
            Result.Unlocked    = Unlocked;
            Result.Progression = (Total != 0) ? (int)Math.Ceiling((double)(Unlocked * 100 / Total)) : 0;

            return(Result);
        }
        public ProgressionAchievements ProgessionLaunched()
        {
            ProgressionAchievements Result = new ProgressionAchievements();
            int Total    = 0;
            int Locked   = 0;
            int Unlocked = 0;

            foreach (var item in PluginDatabase)
            {
                GameAchievements GameAchievements = item.Value;

                if (GameAchievements.HaveAchivements && PlayniteApi.Database.Games.Get(item.Key).Playtime > 0)
                {
                    Total    += GameAchievements.Total;
                    Locked   += GameAchievements.Locked;
                    Unlocked += GameAchievements.Unlocked;
                }
            }

            Result.Total       = Total;
            Result.Locked      = Locked;
            Result.Unlocked    = Unlocked;
            Result.Progression = (Total != 0) ? (int)Math.Round((double)(Unlocked * 100 / Total)) : 0;

            return(Result);
        }