private static void AlterarJogo(BaseXML baseXML)
        {
            Console.Clear();

            Console.WriteLine("Para alterar um jogo, é necessário o ID.\n");

            string menu = "1 - Já tenho o ID, quero fazer uma alteração.\n0 - Voltar para o menu.";
            int escolha = ReceberInteiro(0, 1, menu);

            if (menu == "0")
                return;

            menu = "Qual o ID do jogo que será alterado?";
            int idJogo = ReceberInteiro(1, 0, menu);

            if (baseXML.PesquisarJogoPorID(idJogo) == null)
            {
                Console.Clear();
                Console.WriteLine("Jogo não encontrado.");
                AguardarTecla();
                return;
            }

            ImprimirJogo(baseXML.PesquisarJogoPorID(idJogo), false);

            string nome;
            string categoria;
            double preco;

            nome = ReceberString("Digite o novo Nome.");
            categoria = ReceberString("Digite a nova Categoria.");
            preco = ReceberPreco();

            baseXML.AlterarJogo(new Jogo(nome, categoria, preco));
        }
        public void AlterarElemento_Teste2()
        {
            File.Delete(CaminhoArquivo);
            BaseXML baseXML = new BaseXML(CaminhoArquivo);

            baseXML.CadastrarJogoNaBase(new Jogo("Top Gear", "Corrida", 20.50));
            Jogo jogo = new Jogo("Zelda", "Aventura", 10);
            jogo.ID = 1;
            baseXML.AlterarJogo(jogo);
            baseXML.CadastrarJogoNaBase(new Jogo("FIFA", "Corrida", 15));

            Jogo jogoRetornado1 = baseXML.PesquisarJogoPorID(1);
            Jogo jogoRetornado2 = baseXML.PesquisarJogoPorID(2);

            Assert.AreEqual("Aventura", jogoRetornado1.Categoria);
            Assert.AreEqual("Corrida", jogoRetornado2.Categoria);
        }
        public void CadastrarJogo_Teste1()
        {
            File.Delete(CaminhoArquivo);
            BaseXML baseXML = new BaseXML(CaminhoArquivo);

            Jogo jogoEsperado1 = new Jogo("Top Gear", "Corrida", 90.8);
            Jogo jogoEsperado2 = new Jogo("Zelda", "Aventura", 80);

            baseXML.CadastrarJogoNaBase(jogoEsperado1);
            baseXML.CadastrarJogoNaBase(jogoEsperado2);

            Jogo jogoRetornado1 = baseXML.PesquisarJogoPorID(1);
            Jogo jogoRetornado2 = baseXML.PesquisarJogoPorID(2);

            int numeroElementos = baseXML.GetJogos().Length;

            Assert.AreEqual(2, numeroElementos);
            Assert.AreEqual(jogoEsperado1.Nome, jogoRetornado1.Nome);
            Assert.AreEqual(jogoEsperado2.Nome, jogoRetornado2.Nome);
        }
        public void ProcurarPorID_Teste1()
        {
            File.Delete(CaminhoArquivo);
            BaseXML baseXML = new BaseXML(CaminhoArquivo);

            Jogo jogo = baseXML.PesquisarJogoPorID(0);

            Assert.AreEqual(null, jogo);
        }
        private static void AlugarDevolverJogo(BaseXML baseXML)
        {
            int menu;
            int idJogo;
            int idUsuario;
            Console.Clear();

            menu = ReceberInteiro(1, 2, "1 - Desejo alugar um jogo.\n2 - Desejo devolver um jogo.\n");

            if (menu == 1)
            {
                Console.Clear();
                idJogo = ReceberInteiro(1, 0, "Qual o ID do jogo que deseja alugar?");

                if (baseXML.PesquisarJogoPorID(idJogo) == null)
                {
                    Console.Clear();
                    Console.WriteLine("Esse jogo não existe.");
                    AguardarTecla();
                    return;
                }

                Console.Clear();
                idUsuario = ReceberInteiro(1, 0, "Qual o ID do usuário que deseja alugar?");

                if (baseXML.PesquisarUsuarioPorID(idUsuario) == null)
                {
                    Console.Clear();
                    Console.WriteLine("Esse usuário não existe.");
                    AguardarTecla();
                    return;
                }

                Console.Clear();
                baseXML.AlugarJogo(idJogo, idUsuario);

                Console.Clear();
                Console.WriteLine("Pronto");
                AguardarTecla();
            }
            else
            {
                idJogo = ReceberInteiro(1, 0, "Qual o ID do jogo que deseja devolver?");
                if (baseXML.PesquisarJogoPorID(idJogo) == null)
                {
                    Console.Clear();
                    Console.WriteLine("Esse jogo não existe.");
                    AguardarTecla();
                    return;
                }

                Jogo[] alugados = baseXML.GetJogosAlugados();
                bool concluido = false;
                foreach (var jogo in alugados)
                {
                    if (jogo.Situacao == "Alugado" && jogo.ID == idJogo)
                    {
                        baseXML.DevolverJogo(idJogo);
                        concluido = true;
                        break;
                    }
                }

                if (concluido)
                {
                    Console.Clear();
                    Console.WriteLine("Pronto\n");
                    AguardarTecla();
                }
                else
                {
                    Console.Clear();
                    Console.WriteLine("Esse jogo não está alugado.\n");
                    AguardarTecla();
                }
            }
        }
        private static void PesquisarJogo(BaseXML baseXML)
        {
            Console.Clear();

            string menu = "Qual o paramêtro de busca ?\n\n1 - ID\n2 - Nome\n3 - Categoria\n4 - Listar todos os jogos";
            int escolha = ReceberInteiro(1, 4, menu);
            Jogo[] resultado;

            if (escolha == 4)
            {
                ListarJogos(baseXML);
                return;
            }

            if (escolha == 1)
            {
                resultado = new Jogo[1];
                resultado[0] = baseXML.PesquisarJogoPorID(ReceberInteiro(1, 0, "Por qual ID deseja buscar?"));
            }
            else if (escolha == 2)
                resultado = baseXML.PesquisarJogoPorNome(ReceberString("Por qual Nome deseja buscar?"));
            else
                resultado = baseXML.PesquisarJogoPorCategoria(ReceberString("Por qual Categoria deseja buscar?"));

            Console.Clear();

            if (resultado != null && resultado[0] != null)
                ImprimirJogos(resultado, true);
            else
            {
                Console.Clear();
                Console.WriteLine("Jogo não encontrado.");
                AguardarTecla();
            }
        }