public ActionResult JogosDisponiveis(string nome)
        {
            var banco = new JogoRepositorio();

            var lista = string.IsNullOrWhiteSpace(nome) ? banco.BuscarTodos().ToList() : banco.BuscarPorNome(nome).ToList();
            lista = lista.Where(j => j.IdCliente == null).ToList();
            List<JogoModel> jogos = new List<JogoModel>();

            foreach (var j in lista)
            {
                jogos.Add(new JogoModel()
                {
                    Id = j.Id,
                    Nome = j.Nome,
                    Categoria = j.Categoria.ToString()
                });
            }
            if (jogos.Count > 0)
            {
                var model = new RelatorioModel()
                {
                    JogosDisponiveis = jogos,
                    QuantidadeDeJogos = jogos.Count()
                };
                return View(model);
            }
            return View(new RelatorioModel());
        }
        public ActionResult Salvar(JogoDetalhesModel model)
        {
            var database = new JogoRepositorio();
            if (ModelState.IsValid)
            {
                var jogo = database.BuscarPorNome(model.Nome).ToList();
                if (jogo.Count > 0)
                {
                    try
                    {
                        database.Atualizar(new Dominio.Jogo(jogo[0].Id)
                        {
                            Nome = model.Nome,
                            Categoria = model.Categoria,
                            Imagem = model.Imagem,
                            Video = model.Video,
                            Selo = model.Selo,
                            Descricao = model.Descricao
                        });
                        TempData["Mensagem"] = "Jogo Atualizado com Sucesso!!";

                    }
                    catch (SqlException)
                    {
                        TempData["Mensagem"] = "Problema na atualização dos dados no banco,"
                            + " por favor digite os dados corretamente";
                    }
                    return View("ManterJogo", model);

                }
                else
                {
                    try
                    {
                        database.Criar(new Dominio.Jogo()
                        {
                            Nome = model.Nome,
                            Categoria = model.Categoria,
                            Imagem = model.Imagem,
                            Video = model.Video,
                            Selo = model.Selo,
                            Descricao = model.Descricao
                        });
                        TempData["Mensagem"] = "Jogo Salvo com Sucesso!!";
                        model.Id = database.BuscarPorNome(model.Nome)[0].Id;
                    }
                    catch (Exception)
                    {
                        TempData["Mensagem"] = "Problema na inserção dos dados no banco,"
                            + " por favor digite os dados corretamente";
                    }
                    return View("ManterJogo", model);
                }
            }
            else
            {
                return View("ManterJogo", model);
            }
        }
        public JsonResult JogosAutocomplete(string term)
        {
            var banco = new JogoRepositorio();
            IList<Jogo> jogosEncontrados = string.IsNullOrEmpty(term) ? banco.BuscarTodos() : banco.BuscarPorNome(term);

            var json = jogosEncontrados.Select(x => new { label = x.Nome });

            return Json(json, JsonRequestBehavior.AllowGet);
        }
        private IList<Dominio.Jogo> ObterJogosPorFiltro(string nome)
        {
            IJogoRepositorio jogoRepositorio = new JogoRepositorio();

            if (string.IsNullOrEmpty(nome))
                return jogoRepositorio.BuscarTodos();
            else
            {
                return jogoRepositorio.BuscarPorNome(nome);
            }
        }