public void SetFullPackCompleted(Pack pack, bool isCompleted) { using (var dbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH)) { dbHelper.SetFullPackCompleted(pack, isCompleted); } }
public Pack GetPackById(int id) { using (var dbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH)) { return(dbHelper.GetPackById(id)); } }
public void SetIsMediaCompleted(Media media, Pack pack, bool isCompleted) { using (var dbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH)) { dbHelper.SetIsCompleted(media, pack, isCompleted); } }
public List <BaseLevel> GetBaseLevels() { List <BaseLevel> levels = new List <BaseLevel>(); using (var dbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH)) { var installedLevels = dbHelper.GetLevels(); levels.AddRange(installedLevels.Values.Where(m => m.Language.Equals(LanguagesUtils.GetCurrentLanguageOnQuizzAppFormat(), StringComparison.InvariantCultureIgnoreCase))); } //// Debug purpose //levels.Add(levels[0]); //levels.Add(levels[0]); //levels.Add(levels[0]); //levels.Add(levels[0]); //levels.Add(levels[0]); //levels.Add(levels[0]); //levels.Add(levels[0]); //levels.Add(levels[0]); //levels.Add(levels[0]); //levels.Add(levels[0]); //levels.Add(levels[0]); return(levels); }
public List <Difficulty> GetDifficulties() { //List<Difficulty> difficulties = new List<Difficulty>(); //if (this.LastInitInfosRep != null) // difficulties = this.LastInitInfosRep.Difficulties.Where(m => m.Language.Value.Equals(Utils.GetCurrentLanguageOnQuizzAppFormat(), StringComparison.InvariantCultureIgnoreCase)).ToList(); using (var dbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH)) { var installedDifficulties = dbHelper.GetDifficulties(); return(installedDifficulties.Values.Where(m => m.Language.Equals(LanguagesUtils.GetCurrentLanguageOnQuizzAppFormat(), StringComparison.InvariantCultureIgnoreCase)).ToList()); } }
private async Task <bool> RefreshInitInfosAsync(bool updateIndicatorOfAllPacks) { try { JsonWebClient client = new JsonWebClient(); InitInfosRep resp = await client.DoRequestJsonAsync <InitInfosRep>(QUIZZ_APP_INIT_BASE_URL + "/" + QUIZZ_APP_SERVICE_INFO + "/" + QUIZZ_APP_MEDIA_TYPE_IDENTIFIER); this.LastInitInfosRep = resp; this.LastInitInfosRepTime = DateTime.Now; // Inject dificulties if (this.LastInitInfosRep == null) { return(false); } var difficulties = this.LastInitInfosRep.Difficulties.Where(m => m.Language.Value.Equals(LanguagesUtils.GetCurrentLanguageOnQuizzAppFormat(), StringComparison.InvariantCultureIgnoreCase)).ToList(); using (var dbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH)) { var installedDifficulties = dbHelper.GetDifficulties(); foreach (var item in difficulties) { if (!installedDifficulties.ContainsKey(item.Difficulty.Id)) { dbHelper.AddDifficulty(item); } } var toto = dbHelper.GetDifficulties(); } //if (updateIndicatorOfAllPacks) // this.UpdateIndicatorNewOfPacks(); return(true); } catch (Exception ex) { Debug.WriteLine("Error doing 'init' on server!!", ex); return(false); } }
public Level GetLevel(int levelId) { Level level = new Level(); using (var dbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH)) { BaseLevel baseLevel = dbHelper.GetLevelById(levelId); if (baseLevel == null) { return(null); } // Copying values from base level type level.Id = baseLevel.Id; level.DifficultyId = baseLevel.DifficultyId; level.Language = baseLevel.Language; level.Md5 = baseLevel.Md5; level.PackIds = baseLevel.PackIds; level.ReleaseDate = baseLevel.ReleaseDate; level.Val = baseLevel.Val; level.ZipSize = baseLevel.ZipSize; var packs = dbHelper.GetPacks(levelId); int nbPacksTerminated = 0; foreach (var item in packs.Values) { if (item.IsTerminated) { nbPacksTerminated++; } level.Packs.Add(item); } //if (level.Packs.Count == 0) // level.Progression = 0; //else // level.Progression = nbPacksTerminated / level.Packs.Count; level.NbPacksTerminated = nbPacksTerminated; } return(level); }
private void InstallLevelOnMainDb(string levelDbPath, Action <int> installProgress, CancellationToken cancellationToken) { using (GameDBHelper gameDbHelper = new GameDBHelper(MAIN_DATABASE_PATH, MAIN_PACKS_FOLDER_PATH)) using (LevelDBHelper levelDb = new LevelDBHelper(levelDbPath)) { int percent = 0; Dictionary <int, BaseLevel> levels = gameDbHelper.GetLevels(); foreach (var aLevel in levelDb.GetLevels()) { // Retrieve packs cancellationToken.ThrowIfCancellationRequested(); var newPacks = levelDb.GetPacks(aLevel.Value.Id); var existingPacks = gameDbHelper.GetPacks(aLevel.Value.Id); var existingMedias = gameDbHelper.GetAllMediasIds(); // Copy level on main DB cancellationToken.ThrowIfCancellationRequested(); if (!levels.ContainsKey(aLevel.Key)) { gameDbHelper.AddLevel(aLevel.Value); } // for each newPacks, generate thumbnails... double i = 0; foreach (var pack in newPacks) { i = i + 1; // Generate thumbnails cancellationToken.ThrowIfCancellationRequested(); GenerateThumbnails(pack.Value); cancellationToken.ThrowIfCancellationRequested(); percent = (int)((i / (newPacks.Count * 2)) * 100); // multiply by 2 because the newpack list will be iterated twice Debug.WriteLine("Generate thum percent : " + percent); if (installProgress != null) { installProgress.Invoke(percent); } /* ORIGINAL CODE COMMENTED FOR CANCELLATION OPTIM * // Copy values on Main Db * if (!existingPacks.ContainsKey(pack.Key)) * gameDbHelper.AddPack(pack.Value); * * * // Add media off pack * foreach (var aMedia in pack.Value.Medias) * { * if (!existingMedias.Contains(aMedia.Id)) * { * gameDbHelper.AddMedia(aMedia); * gameDbHelper.AddPackMediaAssoc(pack.Value.Id, aMedia.Id, aMedia.Position, aMedia.IsCompleted); * } * } */ } // .. then add them to main DB if nor cancelled cancellationToken.ThrowIfCancellationRequested(); Debug.WriteLine("Registering packs on main DB"); foreach (var pack in newPacks) { // Copy values on Main Db if (!existingPacks.ContainsKey(pack.Key)) { gameDbHelper.AddPack(pack.Value); } // Add media off pack foreach (var aMedia in pack.Value.Medias) { if (!existingMedias.Contains(aMedia.Id)) { gameDbHelper.AddMedia(aMedia); gameDbHelper.AddPackMediaAssoc(pack.Value.Id, aMedia.Id, aMedia.Position, aMedia.IsCompleted); } } i = i + 1; percent = (int)((i / (newPacks.Count * 2)) * 100); Debug.WriteLine("Packs registered on DB, percent : " + percent); if (installProgress != null) { installProgress.Invoke(percent); } } } } }
private static void TestGameDB() { var db = new UserDBHelper(); using (var gamedb = new GameDBHelper()) { List <GameUnitsTable> GetCoreArmy(int coreId) { var result = new List <GameUnitsTable>(); var warriorUnit = gamedb.GetUnitProperty("Warrior"); var attackAircraftUnit = gamedb.GetUnitProperty("AttackAircraft"); var numberWarriors = gamedb.CasernGetNumberOfWarriors(coreId); var numberAttackAircraft = gamedb.CasernGetNumberOfAttackAircraft(coreId); for (int i = 0; i < numberWarriors; i++) { result.Add( new GameUnitsTable() { GameUnitId = warriorUnit.GameUnitId, GameUnitType = warriorUnit.GameUnitType, GameUnitName = warriorUnit.GameUnitName, GameUnitHP = warriorUnit.GameUnitHP, GameUnitAttack = warriorUnit.GameUnitAttack, GameUnitDefence = warriorUnit.GameUnitDefence, GameUnitGoldIncome = warriorUnit.GameUnitGoldIncome, GameUnitGoldOutcome = warriorUnit.GameUnitGoldOutcome }); } for (int i = 0; i < numberAttackAircraft; i++) { result.Add(new GameUnitsTable() { GameUnitId = attackAircraftUnit.GameUnitId, GameUnitType = attackAircraftUnit.GameUnitType, GameUnitName = attackAircraftUnit.GameUnitName, GameUnitHP = attackAircraftUnit.GameUnitHP, GameUnitAttack = attackAircraftUnit.GameUnitAttack, GameUnitDefence = attackAircraftUnit.GameUnitDefence, GameUnitGoldIncome = attackAircraftUnit.GameUnitGoldIncome, GameUnitGoldOutcome = attackAircraftUnit.GameUnitGoldOutcome }); } return(result); } bool run = true; while (run) { Console.WriteLine( "1. Show all\n" + "2. Show battle\n" + "3. Random registration\n" + "4. Show all cores\n" + "5. Build casern test\n" + "6. Core info\n" ); var key = Console.ReadKey().Key; Console.WriteLine(); switch (key) { case ConsoleKey.D1: { break; } case ConsoleKey.D2: { Console.WriteLine(); Console.WriteLine("Battle begins"); List <GameUnitsTable> attackers = GetCoreArmy(1); List <GameUnitsTable> defenders = GetCoreArmy(2); var result = 0; // GameEngine.Battle(attackers, defenders); Console.WriteLine(result == 0 ? "Attackers won the battle!" : "Defenders won the battle!"); break; } case ConsoleKey.D3: { Console.WriteLine(); RandomUserRegistration( db.RegisterUserToTable, db.RemoveUserByIdFromTable, db.FindUserByNickname); break; } case ConsoleKey.D4: { Console.WriteLine(); Console.WriteLine("Cores: "); var coreList = gamedb.GetAllCores() .FromJson <List <SessionCoresTable> >(); foreach (var el in coreList) { var elmap = gamedb .FindCoreMapByMapIdAsNoTracking(el.CoreMapId) .FromJson <SessionMapTable>(); Console.WriteLine( $"userid: {el.UserId} " + $"mapid: {el.CoreMapId} " + $"map [{elmap.XCoord}, {elmap.YCoord}]" ); } break; } case ConsoleKey.D5: { Console.Clear(); Console.WriteLine("Build casern"); gamedb.CoreBuildCasern(1); Console.Read(); break; } case ConsoleKey.D6: { Console.Clear(); Console.WriteLine("Core info"); var list = db.GetAllUsers(); foreach (var el in list) { var coreId = UserDBHelper.GetCoreIdByUserId(el.UserId); if (coreId != -1) { var coreInfo = gamedb .GetCoreInfoById(coreId) .FromJson <CoreInfo>(); //var coreMap = gamedb // .FindCoreMapByMapIdAsNoTracking(coreInfo.CoreMapId) // .FromJson<SessionMapTable>(); // //Console.WriteLine($"Core info [UserId={el.UserId}]"); //Console.WriteLine($"coreid: {coreInfo.CoreId} " + // $"money: {coreInfo.Money} " + // $"base capacity: {coreInfo.BaseCapacity}"+ // $"map[{coreMap.XCoord}, {coreMap.YCoord}]"); } else { Console .WriteLine($"Can not find core id for userid: {el.UserId}"); } } Console.WriteLine(); break; } case ConsoleKey.C: { Console.Clear(); break; } case ConsoleKey.Escape: { run = false; break; } default: { break; } } } } }