/// <summary> /// Atualizar informações do jogo /// </summary> void UpdateGameInfo() { // Informações do jogo Systems.GameInformation gi = DevDatabase.GameInfo(GameCode); // Atualiza preço GamePrice = gi.Price; // Carregar imagem do jogo GameImage.Load(gi.Image); // Atualiza aprovação Approved = bool.Parse(gi.ApprovedGame); // Atualiza link de pagamento GameBuyLink = gi.GameBuyLink; // Atualiza a descrição do jogo GameDescription = gi.Description; // Valida acquisição do jogo ValidateAcquisition(); }
/// <summary> /// Criar arquivo de configuração do jogo /// </summary> /// <param name="GameTitle">Nome do Jogo</param> /// <param name="GameDeveloper">Desenvolvedor do Jogo</param> /// <param name="GameId">ID do Jogo</param> public static bool InsertNewGame(GameInformation Game) { // Verificar se já existe um arquivo de configurações do jogo if (File.Exists(Path.Combine(Directories.TempGameFilesSetup(Game.ID), "tmpFile.IwGX"))) { // Exibe mensagem de confirmação IwP_CustomMessage IPCM = new IwP_CustomMessage() { _Title = "CFG OVERWRITE", _Description = "An game config already exists!\nDo you want to overwrite it?", ButtonMessage = "OVERWRITE", CallFor = null }; // Verifica se o usuário clicou em Overwrite if (IPCM.ShowDialog() != DialogResult.OK) { return(false); } } // Exibir pasta de arquivo FolderBrowserDialog FolderBrowser = new FolderBrowserDialog(); FolderBrowser.Description = "Select your game files folder"; FolderBrowser.ShowNewFolderButton = false; // Caso o usuário selecione a pasta, criar os arquivos if (FolderBrowser.ShowDialog() == DialogResult.OK) { // Lista para handler de arquivos List <string> Files = new List <string>(); // Criar e zipar arquivos ZipFile.CreateFromDirectory(FolderBrowser.SelectedPath, Path.Combine(Directories.TempGameFilesSetup(Game.ID), "tmpFile.IwGX"), CompressionLevel.NoCompression, false, Encoding.UTF8); // Abrir arquivo para leitura ZipArchive zippedFile = ZipFile.OpenRead(Path.Combine(Directories.TempGameFilesSetup(Game.ID), "tmpFile.IwGX")); // Percorrer arquivos dentro do ZIP foreach (var z in zippedFile.Entries) { // Adicionar nome do arquivo à lista Files.Add(z.FullName); } // Sair da instância aberta do ZIP zippedFile.Dispose(); // Converter lista em JSON string FJS = JsonSerializer.Serialize(Files); // Criar detalhes do jogo var Details = new Dictionary <string, string> { ["AppTitle"] = Game.Name, ["AppDeveloper"] = Game.Developer, ["AppId"] = Game.ID, ["AppImage"] = Game.Image, ["Files"] = FJS }; // Converter em JSON string DetailsJS = JsonSerializer.Serialize(Details); // Tentar inserir o jogo na base de dados try { // Criar dados de postagem // Postar no servidor // Verificar retorno if (Hashing.Decrypt(new PostClient().RESTPOST("/games/games.branch", new Dictionary <string, string> { ["sid"] = IwP_Main_Database.UserInfo.SessionID, ["gamecode"] = Game.ID, ["username"] = IwP_Main_Database.UserInfo.Username, ["company"] = Game.Developer, ["setup"] = DetailsJS, ["query"] = Hashing.Encrypt("INSERT") })) == "INS_OK") { return(true); } else { return(false); } } catch (Exception ex) { // Log file LogClient.Log(ex.Message); // Retornar falso por padrão return(false); } finally { // Verificar se pasta temporária do jogo existe if (Directory.Exists(Directories.TempGameFilesSetup(Game.ID))) { Directory.Delete(Directories.TempGameFilesSetup(Game.ID), true); } } } // Retornar falso por padrão return(false); }