コード例 #1
0
        /// <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();
        }
コード例 #2
0
ファイル: IwPlay.Systems.cs プロジェクト: Ironiawn/IwPlay
        /// <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);
        }