public async Task <JogoResponse> AtualizarAsync(JogoRequest jogoRequest)
        {
            var ExisteJogo = _jogoRepositorio.Existe(jogoRequest.Id);

            if (!ExisteJogo)
            {
                throw new NegocioException("Jogo Não Encontrado!");
            }

            var jogo = _mapper.Map <Jogo>(jogoRequest);

            ValidarJogo(jogo);

            return(await Task.FromResult(_mapper.Map <JogoResponse>(_jogoRepositorio.Atualizar(jogo))));
        }
        public ActionResult Salvar(ManterJogoModel model)
        {
            bool podeSalvarNoBanco = ModelState.IsValid;

            if (podeSalvarNoBanco)
            {
                bool deveAlterar = model.Id > 0;
                jogoRepositorio = FabricaDeModulos.CriarJogoRepositorio();
                seloRepositorio = FabricaDeModulos.CriarSeloRepositorio();

                Jogo jogo = new Jogo(model.Id)
                {
                    Nome = model.Nome,
                    Categoria = model.Categoria,
                    Descricao = model.Descricao,
                    Imagem = model.Imagem,
                    Video = model.Video,
                    IdSelo = seloRepositorio.BuscarPorNome(model.Selo).Id,
                    Disponivel = true
                };

                if (deveAlterar)
                {
                    jogoRepositorio.Atualizar(jogo);
                    TempData["Mensagem"] = "Jogo editado com sucesso!";
                    TempData["TipoMensagem"] = "sucesso";
                }
                else
                {
                    jogoRepositorio.Criar(jogo);
                    TempData["Mensagem"] = "Jogo salvo com sucesso!";
                    TempData["TipoMensagem"] = "sucesso";
                }

                return RedirectToAction("JogosDisponiveis", "Relatorio");
            }
            else
            {
                ColocarListaCategoriaEListaSeloNaViewBag();
                return View("Manter", model);
            }
        }
        public ActionResult Salvar(JogoEditarCriarModel model)
        {
            if (ModelState.IsValid)
            {
                repositorio = CriarJogoRepositorio();
                bool ehParaCriar = model.Id == null;
                if (ehParaCriar)
                {
                    Jogo jogo = new Jogo()
                    {
                        Nome = model.Nome,
                        Categoria = model.Categoria,
                        Descricao = model.Descricao,
                        Selo = model.Selo,
                        Imagem = model.Imagem,
                        Video = model.Video
                    };
                    repositorio.Criar(jogo);
                    TempData["Mensagem"] = "Jogo criado com sucesso!";
                }
                else
                {
                    Jogo jogo = new Jogo((int)model.Id)
                    {
                        Nome = model.Nome,
                        Categoria = model.Categoria,
                        Descricao = model.Descricao,
                        Selo = model.Selo,
                        Imagem = model.Imagem,
                        Video = model.Video
                    };
                    repositorio.Atualizar(jogo);
                    TempData["Mensagem"] = "Jogo editado com sucesso!";
                }

                return RedirectToAction("JogosDisponiveis", "Relatorio");
            }
            else
            {
                return View("ManterJogo", model);
            }
        }