コード例 #1
0
        public Game Get(int GameID)
        {
            Game                Game           = new Game();
            GameDTO             GameDTO        = new GameDTO();
            GamesDataController DataController = new GamesDataController();

            GameDTO = DataController.GetGameByID(GameID);

            Game.GameID   = GameDTO.GameID;
            Game.GameName = GameDTO.GameName;

            return(Game);
        }
コード例 #2
0
        public bool Delete(int GameID)
        {
            bool Confirmation = false;

            GamesDataController DataController = new GamesDataController();

            try
            {
                Confirmation = DataController.DeleteFromGame(GameID);
            }
            catch
            {
                throw new Exception("Failed to delete the game");
            }

            return(Confirmation);
        }
コード例 #3
0
        public bool Post([FromBody] Game NewGame)
        {
            bool Confirmation = false;

            GamesDataController DataController = new GamesDataController();

            try
            {
                Confirmation = DataController.InsertIntoGame(NewGame.GameName);
            }
            catch
            {
                throw new Exception("Failed to add a new Game");
            }

            return(Confirmation);
        }
コード例 #4
0
        public List <Game> Get()
        {
            List <Game>         AllGames       = new List <Game>();
            List <GameDTO>      GameDTOs       = new List <GameDTO>();
            GamesDataController DataController = new GamesDataController();

            GameDTOs = DataController.GetAllGames();

            foreach (var Game in GameDTOs)
            {
                Game incomingGame = new Game
                {
                    GameID   = Game.GameID,
                    GameName = Game.GameName
                };

                AllGames.Add(incomingGame);
            }

            return(AllGames);
        }
コード例 #5
0
        public bool Put([FromBody] Game UpdatedGame)
        {
            bool Confirmation = false;

            GamesDataController DataController = new GamesDataController();
            GameDTO             GameDTO        = new GameDTO
            {
                GameID   = UpdatedGame.GameID,
                GameName = UpdatedGame.GameName
            };

            try
            {
                Confirmation = DataController.UpdateGame(GameDTO);
            }
            catch
            {
                throw new Exception("Failed to update a new Game");
            }

            return(Confirmation);
        }
コード例 #6
0
        public async Task <bool> PostNewSets(int GameID)
        {
            bool Success;
            SetDataController SetDataController = new SetDataController();

            List <YgoSetAPIResponse>  YgoSetResponse     = new List <YgoSetAPIResponse>();
            PokemonSetAPIResponseRoot PokemonSetResponse = new PokemonSetAPIResponseRoot();
            List <SetDTO>             NonExistingSets    = new List <SetDTO>();
            List <SetDTO>             ExistingSets       = new List <SetDTO>();

            GamesDataController GameDataController = new GamesDataController();
            GameDTO             GameDTO            = GameDataController.GetGameByID(GameID);
            CardController      CardController     = new CardController();

            using (var HttpClient = new HttpClient())
            {
                switch (GameDTO.GameName)
                {
                case "Yu-Gi-Oh":
                    using (var Response = await HttpClient.GetAsync("https://db.ygoprodeck.com/api/v7/cardsets.php"))
                    {
                        string ApiResponse = await Response.Content.ReadAsStringAsync();

                        YgoSetResponse = JsonConvert.DeserializeObject <List <YgoSetAPIResponse> >(ApiResponse);
                    }

                    foreach (var Item in YgoSetResponse)
                    {
                        SetDTO NewSet = new SetDTO();

                        NewSet.GameID      = GameID;
                        NewSet.SetCode     = Item.set_code;
                        NewSet.SetName     = Item.set_name;
                        NewSet.ReleaseDate = Item.tcg_date;

                        NonExistingSets.Add(NewSet);
                    }

                    break;

                case "Pokemon":
                    using (var Response = await HttpClient.GetAsync("https://api.pokemontcg.io/v1/sets"))
                    {
                        string ApiResponse = await Response.Content.ReadAsStringAsync();

                        PokemonSetResponse = JsonConvert.DeserializeObject <PokemonSetAPIResponseRoot>(ApiResponse);
                    }
                    foreach (var Item in PokemonSetResponse.sets)
                    {
                        SetDTO NewSet = new SetDTO();
                        NewSet.GameID      = GameID;
                        NewSet.SetCode     = Item.code;
                        NewSet.SetName     = Item.name;
                        NewSet.ReleaseDate = Item.releaseDate;

                        NonExistingSets.Add(NewSet);
                    }
                    break;
                }
            }

            ExistingSets = SetDataController.GetSetsByGame(GameID);

            HashSet <string> SetCodes = new HashSet <string>(ExistingSets.Select(x => x.SetCode));

            NonExistingSets.RemoveAll(x => SetCodes.Contains(x.SetCode));

            if (NonExistingSets.Count == 0 || NonExistingSets == null)
            {
                Success = false;
            }
            else
            {
                int SetID;

                foreach (var Set in NonExistingSets)
                {
                    SetID = SetDataController.AddNonExistingSetsToDataBase(Set);

                    switch (GameDTO.GameName)
                    {
                    case "Yu-Gi-Oh":
                        await CardController.AddYugiohCards(SetID, Set.SetName, Set.SetCode);

                        break;

                    case "Pokemon":
                        await CardController.AddPokemonCards(SetID, Set.SetCode);

                        break;
                    }
                }
                Success = true;
            }

            return(Success);
        }