Ejemplo n.º 1
0
 // methods
 public void SetGenre(GameGenres assignedGenre)
 {
     GameGenre = assignedGenre;
 }
        private void Add(Game Game, Guid?SourceId = null)
        {
            List <Counter> GameGenres           = new List <Counter>();
            List <Counter> GameSource           = new List <Counter>();
            List <Counter> GameFavorite         = new List <Counter>();
            List <Counter> GameIsInstalled      = new List <Counter>();
            List <Counter> GameIsNotLaunching   = new List <Counter>();
            List <Counter> GameHidden           = new List <Counter>();
            List <Counter> GameCompletionStatus = new List <Counter>();

            long Playtime = 0;
            bool IsFind   = false;

            // Initialization variables
            if (SourceId == null)
            {
                GameGenres           = Statistics.GameGenres;
                GameSource           = Statistics.GameSource;
                GameFavorite         = Statistics.GameFavorite;
                GameIsInstalled      = Statistics.GameIsInstalled;
                GameIsNotLaunching   = Statistics.GameIsNotLaunching;
                GameHidden           = Statistics.GameHidden;
                GameCompletionStatus = Statistics.GameCompletionStatus;

                Playtime = Statistics.Playtime;;
            }
            else
            {
                if (StatisticsSourceDatabase.TryGetValue((Guid)SourceId, out var item))
                {
                    GameGenres           = item.GameGenres;
                    GameSource           = item.GameSource;
                    GameFavorite         = item.GameFavorite;
                    GameIsInstalled      = item.GameIsInstalled;
                    GameIsNotLaunching   = item.GameIsNotLaunching;
                    GameHidden           = item.GameHidden;
                    GameCompletionStatus = item.GameCompletionStatus;

                    Playtime = item.Playtime;
                }
                else
                {
                    string SourceName = "";
                    if (ListEmulators.Contains((Guid)SourceId))
                    {
                        SourceName = PlayniteApiDatabase.Emulators.Get((Guid)SourceId).Name;
                    }
                    else
                    {
                        if (SourceId == Guid.Parse("00000000-0000-0000-0000-000000000000"))
                        {
                            SourceName = "Playnite";
                        }
                        else
                        {
                            SourceName = Game.Source.Name;
                        }
                    }

                    StatisticsClass StatisticsSource = new StatisticsClass
                    {
                        Name                 = SourceName,
                        GameGenres           = new List <Counter>(),
                        GameSource           = new List <Counter>(),
                        GameFavorite         = new List <Counter>(),
                        GameIsInstalled      = new List <Counter>(),
                        GameIsNotLaunching   = new List <Counter>(),
                        GameHidden           = new List <Counter>(),
                        GameCompletionStatus = new List <Counter>(),

                        Playtime = 0,
                        Total    = 0
                    };
                    StatisticsSourceDatabase.TryAdd((Guid)SourceId, StatisticsSource);

                    GameGenres           = new List <Counter>();
                    GameSource           = new List <Counter>();
                    GameFavorite         = new List <Counter>();
                    GameIsInstalled      = new List <Counter>();
                    GameIsNotLaunching   = new List <Counter>();
                    GameHidden           = new List <Counter>();
                    GameCompletionStatus = new List <Counter>();

                    Playtime = 0;
                }
            }

            if (Game.IsInstalled)
            {
                GameIsInstalled.Add(new Counter {
                    Id = Game.Id, Name = Game.Name
                });
            }

            if (Game.LastActivity == null)
            {
                GameIsNotLaunching.Add(new Counter {
                    Id = Game.Id, Name = Game.Name
                });
            }

            if (Game.Genres != null)
            {
                foreach (var item in Game.Genres)
                {
                    IsFind = false;
                    for (int i = 0; i < GameGenres.Count; i++)
                    {
                        if (item.Name == GameGenres[i].Name)
                        {
                            GameGenres[i].Count += 1;
                            IsFind = true;
                        }
                    }
                    if (IsFind == false)
                    {
                        GameGenres.Add(new Counter {
                            Id = item.Id, Name = item.Name, Count = 1
                        });
                    }
                }
            }

            if (SourceId == null)
            {
                IsFind = false;
                string SourceName = "";
                if (Game.SourceId == Guid.Parse("00000000-0000-0000-0000-000000000000"))
                {
                    SourceName = "Playnite";
                }
                else
                {
                    SourceName = Game.Source.Name;
                }

                for (int i = 0; i < GameSource.Count; i++)
                {
                    if (SourceName == GameSource[i].Name)
                    {
                        GameSource[i].Count += 1;
                        IsFind = true;
                    }
                }
                if (IsFind == false)
                {
                    GameSource.Add(new Counter {
                        Id = Game.SourceId, Name = SourceName, Count = 1
                    });
                }
            }
            else
            {
                string GameName = Game.Name;
                GameSource.Add(new Counter {
                    Id = Game.Id, Name = GameName, Count = Game.Playtime
                });
            }

            if (Game.Favorite)
            {
                GameFavorite.Add(new Counter {
                    Id = Game.Id, Name = Game.Name
                });
            }

            if (Game.Hidden)
            {
                GameHidden.Add(new Counter {
                    Id = Game.Id, Name = Game.Name
                });
            }

            IsFind = false;
            for (int i = 0; i < GameCompletionStatus.Count; i++)
            {
                if ("" + Game.CompletionStatus == GameCompletionStatus[i].Name)
                {
                    GameCompletionStatus[i].Count += 1;
                    IsFind = true;
                }
            }
            if (IsFind == false)
            {
                GameCompletionStatus.Add(new Counter {
                    Name = "" + Game.CompletionStatus, Count = 1
                });
            }

            Playtime += Game.Playtime;

            if (SourceId == null)
            {
                Statistics.GameGenres           = GameGenres;
                Statistics.GameSource           = GameSource;
                Statistics.GameFavorite         = GameFavorite;
                Statistics.GameIsInstalled      = GameIsInstalled;
                Statistics.GameIsNotLaunching   = GameIsNotLaunching;
                Statistics.GameHidden           = GameHidden;
                Statistics.GameCompletionStatus = GameCompletionStatus;
                Statistics.Playtime             = Playtime;
                Statistics.Total += 1;
            }
            else
            {
                StatisticsSourceDatabase[(Guid)SourceId].GameGenres           = GameGenres;
                StatisticsSourceDatabase[(Guid)SourceId].GameSource           = GameSource;
                StatisticsSourceDatabase[(Guid)SourceId].GameFavorite         = GameFavorite;
                StatisticsSourceDatabase[(Guid)SourceId].GameIsInstalled      = GameIsInstalled;
                StatisticsSourceDatabase[(Guid)SourceId].GameIsNotLaunching   = GameIsNotLaunching;
                StatisticsSourceDatabase[(Guid)SourceId].GameHidden           = GameHidden;
                StatisticsSourceDatabase[(Guid)SourceId].GameCompletionStatus = GameCompletionStatus;
                StatisticsSourceDatabase[(Guid)SourceId].Playtime             = Playtime;
                StatisticsSourceDatabase[(Guid)SourceId].Total += 1;
            }
        }
Ejemplo n.º 3
0
        public void SaveGame(Game game)
        {
            game.user_id = (int)HttpContext.Session.GetInt32("user_id");

            if (game.expansions != null)
            {
                foreach (var expansion in game.expansions)
                {
                    expansion.cover.expansion_id = expansion.id;
                    expansion.cover.gameId       = expansion.id;
                }
            }

            dbContext.Games.Add(game);

            if (game.genres != null)
            {
                foreach (var genre in game.genres)
                {
                    if (dbContext.Genres.All(g => g.genre_id != genre.genre_id))
                    {
                        dbContext.Genres.Add(genre);
                    }
                    var gameGenre = new GameGenres();
                    gameGenre.gameId   = game.gameId;
                    gameGenre.genre_id = genre.genre_id;
                    dbContext.GameGenres.Add(gameGenre);
                }
            }

            if (game.involved_companies != null)
            {
                foreach (var involComp in game.involved_companies)
                {
                    if (dbContext.Companies.All(comp => comp.company_id != involComp.company.company_id))
                    {
                        dbContext.Companies.Add(involComp.company);
                    }
                    var gameCompany = new GameCompanies();
                    gameCompany.company_id = involComp.company.company_id;
                    gameCompany.gameId     = game.gameId;
                    dbContext.GameCompanies.Add(gameCompany);
                }
            }


            if (game.platforms != null)
            {
                foreach (var platform in game.platforms)
                {
                    if (dbContext.Platforms.All(p => p.platform_id != platform.platform_id))
                    {
                        dbContext.Platforms.Add(platform);
                    }
                    var gamePlatform = new GamePlatforms();
                    gamePlatform.gameId      = game.gameId;
                    gamePlatform.platform_id = platform.platform_id;
                    dbContext.GamePlatforms.Add(gamePlatform);
                }
            }

            dbContext.SaveChanges();
        }