public ActionResult Locacao(int? id) { if(id != null) { IJogoRepositorio repositorio = FabricaDeModulos.CriarJogoRepositorio(); var jogo = repositorio.BuscarPorId((int)id); JogoLocacaoModel jogolocacao = new JogoLocacaoModel() { Cliente = jogo.ClienteLocacao, Id = jogo.Id, Descricao = jogo.Descricao, Imagem = jogo.Imagem, Nome = jogo.Nome, DataPrevistaEntrega = jogo.DataPrevistaEntrega, PrecoPorSelo = jogo.Preco }; return View(jogolocacao); } else { return RedirectToAction("JogosDisponiveis","Relatorio"); } }
public ActionResult SalvarLocacao(JogoLocacaoModel jogoLocacaoModel) { IClienteRepositorio clienteRepo = FabricaDeModulos.CriarClienteRepositorio(); var clienteLocador = clienteRepo.BuscarPorNome(jogoLocacaoModel.Cliente.Nome).FirstOrDefault(j => j.Nome == jogoLocacaoModel.Cliente.Nome); IJogoRepositorio repositorioJogo = FabricaDeModulos.CriarJogoRepositorio(); var jogo = repositorioJogo.BuscarPorId(jogoLocacaoModel.Id); bool estaLocado = repositorioJogo.VerificarSeEstaLocado(jogo); if (clienteLocador != null && !estaLocado) { jogo.LocarPara(clienteLocador); jogo.DataLocacao = DateTime.Now; ServicoValidacaoLocacao servicoValidadorLocacao = FabricaDeModulos.CriarServicoValidacaoLocacao(); bool podeLocar = servicoValidadorLocacao.ValidarLocacaoParaCliente(jogo.ClienteLocacao); if (podeLocar) { repositorioJogo.Atualizar(jogo); TempData["MensagemSalvarEditar"] = "Locado com sucesso :D"; } else { TempData["MensagemSalvarEditar"] = "o cliente ja possui 3 jogos locados"; } } else { TempData["MensagemSalvarEditar"] = "O jogo esta locado, ou o cliente não esta cadastrado"; } return RedirectToAction("JogosDisponiveis", "Relatorio"); }