public ActionResult Manter(int id = -1)
        {
            seloRepositorio = FabricaDeModulos.CriarSeloRepositorio();
            ColocarListaCategoriaEListaSeloNaViewBag();
            bool estaEditando = id > 0;

            if (estaEditando)
            {
                jogoRepositorio = FabricaDeModulos.CriarJogoRepositorio();
                Jogo jogo = jogoRepositorio.BuscarPorId(id);

                ManterJogoModel model = new ManterJogoModel()
                {
                    Nome = jogo.Nome,
                    Categoria = jogo.Categoria,
                    Selo = jogo.Selo.Nome,
                    Descricao = jogo.Descricao,
                    Imagem = jogo.Imagem,
                    Video = jogo.Video
                };

                return View(model);
            }
            else
            {
                return View(new ManterJogoModel());
            }
        }
        public ActionResult Detalhes(string nomeJogo)
        {
            locacaoRepositorio = FabricaDeModulos.CriarLocacaoRepositorio();
            clienteRepositorio = FabricaDeModulos.CriarClienteRepositorio();
            jogoRepositorio = FabricaDeModulos.CriarJogoRepositorio();

            servicoLocacao = new ServicoLocacao(jogoRepositorio, clienteRepositorio, locacaoRepositorio);

            var locacao = locacaoRepositorio.BuscarPendentesPorNomeDoJogo(nomeJogo).FirstOrDefault();
            bool jogoEstaLocado = locacao != null && !locacao.Jogo.Disponivel;

            if (jogoEstaLocado)
            {
                DevolucaoModel model = new DevolucaoModel()
                {
                    IdLocacao = locacao.Id,
                    DataLocacao = locacao.DataLocacao,
                    ImagemJogo = locacao.Jogo.Imagem,
                    NomeJogo = locacao.Jogo.Nome,
                    ValorFinal = servicoLocacao.CalcularValorFinal(locacao)
                };
                return View(model);
            }

            TempData["Mensagem"] = "Jogo informado não encontrado";
            TempData["TipoMensagem"] = "Falha";
            return View("Devolucao");
        }
        public ActionResult JogoDetalhes(int id)
        {
            repositorio = CriarJogoRepositorio();
            var jogo=repositorio.BuscarPorId(id);
            var jogoModel = new JogoDetalheModel() { Nome = jogo.Nome, Categoria = jogo.Categoria.ToString(), Descricao = jogo.Descricao, Selo=jogo.Selo.ToString(), Imagem=jogo.Imagem, Video=jogo.Video };

            return View(jogoModel);
        }
        public IEnumerable <int> GetResultadoMegaSena(int numeroConcurso, [FromServices] IJogoRepositorio jogoRepositorio)
        {
            List <int> resultado = new List <int>();
            Jogo       jogo      = jogoRepositorio.GetMegaSenaJogos().Where(j => j.NumeroConcurso == numeroConcurso).ToList().FirstOrDefault();

            if (jogo != null)
            {
                resultado = jogo.DezenasJogo();
            }

            return(resultado);
        }
        public ActionResult Devolver(int idLocacao)
        {
            locacaoRepositorio = FabricaDeModulos.CriarLocacaoRepositorio();
            clienteRepositorio = FabricaDeModulos.CriarClienteRepositorio();
            jogoRepositorio = FabricaDeModulos.CriarJogoRepositorio();

            servicoLocacao = new ServicoLocacao(jogoRepositorio, clienteRepositorio, locacaoRepositorio);

            bool jogoFoiDevolvido = servicoLocacao.DevolverJogo(idLocacao);

            TempData["Mensagem"] = jogoFoiDevolvido ? "Jogo devolvido com sucesso" : "Não foi possível devolver o jogo";
            TempData["TipoMensagem"] = jogoFoiDevolvido ? "sucesso" : "falha";
            return RedirectToAction("Devolucao");
        }
        public ActionResult Salvar(LocacaoModel model)
        {
            jogoRepositorio = FabricaDeModulos.CriarJogoRepositorio();
            clienteRepositorio = FabricaDeModulos.CriarClienteRepositorio();
            locacaoRepositorio = FabricaDeModulos.CriarLocacaoRepositorio();

            servicoLocacao = new ServicoLocacao(jogoRepositorio, clienteRepositorio, locacaoRepositorio);

            bool locacaoEfetuadaComSucesso = servicoLocacao.LocarJogoParaCliente(model.IdJogo, model.NomeCliente);

            @TempData["Mensagem"] = locacaoEfetuadaComSucesso ? "Locação efetuada" : "Erro na locação";
            @TempData["TipoMensagem"] = locacaoEfetuadaComSucesso ? "sucesso" : "falha";

            return RedirectToAction("JogosDisponiveis", "Relatorio");
        }
        public IActionResult Editar(string id, [FromServices] IJogoRepositorio jogoRepositorio, [FromServices] ITipoJogoRepositorio tipoJogoRepositorio)
        {
            JogoViewModel vm = new JogoViewModel();

            vm.Jogo = jogoRepositorio.GetJogo(id);

            vm.CodigoTipoJogo = vm.Jogo.TipoJogo.Id.ToString();
            List <TipoJogo> tipoJogos = tipoJogoRepositorio.GetTiposJogo();

            foreach (TipoJogo item in tipoJogos)
            {
                vm.OptionsTipoJogo.Add(item.Id.ToString(), item.Name);
            }

            return(View(vm));
        }
        public ActionResult JogosDisponiveis(string nome, string ordem = "Título(A-Z)")
        {
            repositorio = FabricaDeModulos.CriarJogoRepositorio();
            var model = new RelatorioModel();
            bool buscarPorNome = !string.IsNullOrEmpty(nome);

            IList<Jogo> listaDeJogos;

            if (buscarPorNome)
            {
                listaDeJogos = repositorio.BuscarPorNome(nome);
            }
            else
            {
                listaDeJogos = repositorio.BuscarTodos();
            }

            if (listaDeJogos.Count > 0)
            {
                ViewBag.Ordem = ordem;
                IOrderedEnumerable<Jogo> listaOrdenada = null;
                if (ordem == "Título(A-Z)")
                {
                    listaOrdenada = listaDeJogos.OrderBy(j => j.Nome);
                }
                else if (ordem == "Título(Z-A)")
                {
                    listaOrdenada = listaDeJogos.OrderByDescending(j => j.Nome);
                }

                foreach (var jogo in listaOrdenada)
                {
                    var jogoModel = new JogoModel()
                    {
                        Id = jogo.Id,
                        Nome = jogo.Nome,
                        Categoria = jogo.Categoria.ToString(),
                        Imagem = jogo.Imagem,
                        Selo = jogo.Selo
                    };

                    model.Jogos.Add(jogoModel);
                }
                model.QuantidadeTotalDeJogos = model.Jogos.Count;
            }
            return View(model);
        }
        public ActionResult Detalhes(int id)
        {
            jogoRepositorio = FabricaDeModulos.CriarJogoRepositorio();
            var jogo = jogoRepositorio.BuscarPorId(id);

            DetalhesJogoModel model = new DetalhesJogoModel()
            {
                Nome = jogo.Nome,
                Categoria = jogo.Categoria.ToString(),
                Selo = jogo.Selo,
                Descricao = jogo.Descricao,
                Imagem = jogo.Imagem,
                Video = jogo.Video
            };

            return View(model);
        }
        public ActionResult Index()
        {
            repositorio = CriarJogoRepositorio();
            var model = new ListaImagensModel();
            IList<Dominio.Jogo> ListaJogos = new List<Dominio.Jogo>();

            ListaJogos = repositorio.BuscarTodos();
            foreach (var jogo in ListaJogos)
            {
                var imagemModel = new ImagemJogoModel() { Imagem=jogo.Imagem };
                if(!string.IsNullOrEmpty(jogo.Imagem))
                {
                    model.Imagens.Add(imagemModel);
                }
            }

            return View(model);
        }
        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);
            }
        }
 public ActionResult ManterJogo(int? id)
 {
     if (id.HasValue)
     {
         repositorio = CriarJogoRepositorio();
         var jogo = repositorio.BuscarPorId((int)id);
         var model = new JogoEditarCriarModel()
         {
             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();
     }
 }
        public ActionResult JogosDisponiveis(string nomeJogo)
        {
            repositorio = CriarJogoRepositorio();
            var model = new RelatorioModel();
            IList<Jogo> ListaJogos = new List<Jogo>();
            ListaJogos = ObterJogosPorFiltro(nomeJogo);

            foreach (var jogo in ListaJogos)
            {
                if (jogo.EstaDisponivel())
                {
                    var jogoModel = new JogoModel() { Id = jogo.Id, Nome = jogo.Nome, Categoria = jogo.Categoria.ToString(), Selo = jogo.Selo.ToString() };
                    model.Jogos.Add(jogoModel);
                }
            }
            if (ListaJogos.Count == 0)
            {
                return View("JogoNaoEncontrado");
            }
            model.QuantidadeDeJogos = model.Jogos.Count;

            return View(model);
        }
        public ActionResult Locacao(int id)
        {
            jogoRepositorio = FabricaDeModulos.CriarJogoRepositorio();

            var jogo = jogoRepositorio.BuscarPorId(id);
            bool jogoNaoEncontrado = jogo == null;

            if (jogoNaoEncontrado)
            {
                RedirectToAction("JogosDisponiveis", "Relatorio");
            }

            var model = new LocacaoModel()
            {
                IdJogo = jogo.Id,
                NomeJogo = jogo.Nome,
                ImagemJogo = jogo.Imagem,
                NomeSelo = jogo.Selo.Nome,
                Valor = jogo.Selo.Preco,
                DataPrevista = DateTime.Now.AddDays(jogo.Selo.PrazoDevolucao)
            };

            return View(model);
        }
Exemple #16
0
        public void Gerar(string caminhoPastaRelatorio, IJogoRepositorio jogoRepositorio)
        {
            IList<Jogo> todosOsJogos = jogoRepositorio.BuscarTodos();

            string caminhoRelatorio = Path.Combine(caminhoPastaRelatorio, "relatorio_jogos.txt");

            if(File.Exists(caminhoRelatorio))
            {
                File.Delete(caminhoRelatorio);
            }

            using (var writer = new StreamWriter(caminhoRelatorio))
            {
                writer.WriteLine("===== RELATÓRIO =====");
                writer.WriteLine(String.Format("{0:dd/MM/yyyy}", DateTime.Now));
                writer.WriteLine();

                foreach (Jogo jogo in todosOsJogos)
                {
                    writer.WriteLine(jogo);
                    writer.WriteLine();
                }
            }
        }
        public IActionResult Detalhar(string id, [FromServices] IJogoRepositorio jogoRepositorio)
        {
            Jogo jogo = jogoRepositorio.GetJogo(id);

            return(View(jogo));
        }
 public LocacaoServico(IJogoRepositorio repositorio)
 {
     this.jogoRepositorio = repositorio;
 }
 public LocacaoServico(IJogoRepositorio jogoRepositorio, IClienteRepositorio clienteRepositorio)
 {
     this.clienteRepositorio = clienteRepositorio;
     this.jogoRepositorio = jogoRepositorio;
 }
 public ServicoLocacao(IJogoRepositorio repositorio)
 {
     this.JogoRepositorio = repositorio;
 }
 public ServicoValidacaoLocacao(IJogoRepositorio repositorio)
 {
     this.Repositorio = repositorio;
 }
 public JogoServico(IJogoRepositorio jogoRepositorio, IMapper mapper)
 {
     _jogoRepositorio = jogoRepositorio;
     _mapper          = mapper;
 }
 public IEnumerable <Jogo> GetMegaSena([FromServices] IJogoRepositorio jogoRepositorio)
 {
     return(jogoRepositorio.GetMegaSenaJogos());
 }
 public IActionResult Excluir(string id, [FromServices] IJogoRepositorio jogoRepositorio)
 {
     jogoRepositorio.ExcluirJogo(id);
     return(RedirectToAction("Index"));
 }
 public IActionResult Editar(JogoViewModel jogoVM, [FromServices] IJogoRepositorio jogoRepositorio, [FromServices] ITipoJogoRepositorio tipoJogoRepositorio)
 {
     jogoVM.Jogo.TipoJogo = tipoJogoRepositorio.GetTipoJogo(jogoVM.CodigoTipoJogo);
     jogoRepositorio.AtualizaJogo(jogoVM.Jogo);
     return(RedirectToAction("Index"));
 }
Exemple #26
0
        public JogoAppService(IJogoRepositorio jogoRepositorio)
        {
            this.jogoRepositorio = jogoRepositorio;

            this.ConfigurarMapeamento();
        }
 public Jogo BuscarPorId(IJogoRepositorio repositorio, int idJogo)
 {
     return repositorio.BuscarPorId(idJogo);
 }
 public ServicoLocacao(IJogoRepositorio jogoRepositorio, IClienteRepositorio clienteRepositorio, ILocacaoRepositorio locacaoRepositorio)
 {
     this.clienteRepositorio = clienteRepositorio;
     this.jogoRepositorio = jogoRepositorio;
     this.locacaoRepositorio = locacaoRepositorio;
 }
Exemple #29
0
 public JogoNegocio(IJogoRepositorio jogoRepositorio)
 {
     JogoRepositorio = jogoRepositorio;
 }
 public LocacaoServicoDominio(ILocacaoRepositorio locacaoRepositorio, IClienteRepositorio clienteRepositorio, IJogoRepositorio jogoRepositrio)
 {
     this.locacaoRepositorio = locacaoRepositorio;
     this.clienteRepositorio = clienteRepositorio;
     this.jogoRepositrio = jogoRepositrio;
 }
Exemple #31
0
 public JogosController(IJogoRepositorio context, IAmigoRepositorio contextAmigo, IMapper mapper)
 {
     _context      = context;
     _contextAmigo = contextAmigo;
     _mapper       = mapper;
 }
        public IActionResult Index([FromServices] IJogoRepositorio jogoRepositorio)
        {
            List <Jogo> jogos = jogoRepositorio.GetJogos();

            return(View(jogos));
        }