// 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; } }
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(); }