public ActionResult Salvar(string clienteNome, int id)
 {
     if (String.IsNullOrWhiteSpace(clienteNome))
     {
         TempData["Mensagem"] = "Erro na busca do cliente";
         return RedirectToAction("JogosDisponiveis","Relatorio");
     }
     var repositorio = new ClienteRepositorio();
     var jogoRepositorio = new JogoRepositorio();
     var servicoLocacao = new ServicoLocacao() { JogoRepositorio=jogoRepositorio};
     var jogo = jogoRepositorio.BuscarPorId(id);
     var cliente = repositorio.BuscarPorNome(clienteNome).FirstOrDefault();
     if (servicoLocacao.PodeLocar(cliente))
     {
         var data = servicoLocacao.GerarDataDevolucao(jogo);
         if (cliente != null)
         {
             jogo.IdCliente = cliente.Id;
             jogo.LocarPara(cliente);
             jogo.DataDevolucao = data;
             jogoRepositorio.Atualizar(jogo);
             TempData["Mensagem"] = "Jogo Locado com Sucesso";
         }
     }
     else
     {
         TempData["Mensagem"] = "Cliente não pode locar mais jogos";
     }
     return RedirectToAction("JogosDisponiveis", "Relatorio");
 }
 public ActionResult Locar(int id)
 {
     var jogoRepositorio = new JogoRepositorio();
     Jogo jogo = jogoRepositorio.BuscarPorId(id);
     var servicoLocacao = new ServicoLocacao() { JogoRepositorio= jogoRepositorio };
     var dataPrevista = servicoLocacao.GerarDataDevolucao(jogo);
     var telaLocacao = new TelaLocacaoModel()
     {
         Id = jogo.Id,
         NomeJogo = jogo.Nome,
         Selo = jogo.Selo,
         Imagem = string.IsNullOrEmpty(jogo.Imagem) ? "http://imobiliariaprimos.com.br/imagens/imoveis/sem_imagem.jpg" : jogo.Imagem,
         DataPrevista = string.Format("{0:dd/MM/yyyy}", dataPrevista),
         ValorDaLocacao = jogo.GerarValorDaLocacao().ToString("C")
     };
     return View(telaLocacao);
 }
        public ActionResult JogoDetalhado(int id)
        {
            IJogoRepositorio repo = new JogoRepositorio();
            var jogo = repo.BuscarPorId(id);

            JogoDetalhadoModel jogoDetalhadoModel = new JogoDetalhadoModel()
            {
                Nome = jogo.Nome,
                Categoria = jogo.Categoria.ToString(),
                Id = jogo.Id,
                Imagem = jogo.Imagem,
                Video = jogo.Video,
                Descricao = jogo.Descricao,
                Selo = jogo.Selo
            };

            return View(jogoDetalhadoModel);
        }
 public ActionResult DevolverJogo(int id)
 {
     var jogoRepositorio = new JogoRepositorio();
     var clienteRepositorio = new ClienteRepositorio();
     var servicoLocacao = new ServicoLocacao() { JogoRepositorio = jogoRepositorio };
     Jogo jogo = jogoRepositorio.BuscarPorId(id);
     TempData["Cliente"] = clienteRepositorio.BuscarPorId((int)jogo.IdCliente).Nome;
     TempData["Valor"] = jogo.GerarValorDaLocacao().ToString("C");
     bool devolver =servicoLocacao.DevolverJogo(jogo);
     if (devolver)
     {
         TempData["Mensagem"] = "Jogo Devolvido!";
         TempData["DataEntrega"] = String.Format("{0:dd/MM/yyyy}",DateTime.Now.Date);
         return RedirectToAction("JogosLocados", "Relatorio");
     }
     TempData["Mensagem"] = "Falha na devolução";
     return RedirectToAction("JogosLocados", "Relatorio");
 }
        public ActionResult Detalhes(int id)
        {
            var banco = new JogoRepositorio();
            var j = banco.BuscarPorId(id);
            JogoDetalhesModel jogo = new JogoDetalhesModel()
            {
                Id = j.Id,
                Nome = j.Nome,
                Categoria = j.Categoria,
                Descricao = j.Descricao,
                Selo = j.Selo,
                Imagem = String.IsNullOrEmpty(j.Imagem) ? "http://imobiliariaprimos.com.br/imagens/imoveis/sem_imagem.jpg" : j.Imagem,
                Video = j.Video
            };

            var model = jogo;
            return View(jogo);
        }
        public ActionResult ManterJogo(int? id)
        {
            var banco = new JogoRepositorio();
            if (id.HasValue)
            {
                var jogo = banco.BuscarPorId((int)id);
                var model = new JogoDetalhesModel()
                {
                    Id = jogo.Id,
                    Nome = jogo.Nome,
                    Categoria = jogo.Categoria,
                    Descricao = jogo.Descricao,
                    Selo = jogo.Selo,
                    Imagem = jogo.Imagem,
                    Video = jogo.Video

                };
                return View(model);
            }
            else
            {
                return View();
            }
        }