public ActionResult Listar(int idSala, int idJogadorSala)
        {
            var sala = _salaBusiness.Obter(idSala);

            if (sala == default)
            {
                return(RedirectToAction("Manter", "Sala", new Operacao("Sala não encontrada.", false)));
            }

            var jogadoresSala = _jogadorSalaBusiness.Listar(idSala);
            var jogadorSala   = jogadoresSala.SingleOrDefault(_ => _.Id == idJogadorSala);

            if (jogadorSala == default || jogadorSala.IdSala != sala.Id)
            {
                return(RedirectToAction("Manter", "Sala", new Operacao("Jogador não encontrada.", false)));
            }

            var jogador = _jogadorBusiness.Obter(jogadorSala.IdJogador);

            ViewBag.Sala            = Mapper.Map <Sala, SalaViewModel>(sala);
            ViewBag.ID_JOGADOR_SALA = idJogadorSala;
            ViewBag.NomeJogador     = jogador.Descricao;
            var jogadorSalaDono = _jogadorSalaBusiness.Obter(sala.IdJogadorSala.Value);

            ViewBag.NomeJogadorDono = _jogadorBusiness.Obter(jogadorSalaDono.IdJogador).Descricao;

            var suspeitosViewModel = Mapper.Map <List <Suspeito>, List <SuspeitoViewModel> >(_suspeitoBusiness.Listar());

            suspeitosViewModel.ForEach(suspeitoViewModel =>
            {
                jogadorSala = jogadoresSala.FirstOrDefault(_ => _.IdSuspeito == suspeitoViewModel.Id);

                if (jogadorSala != default)
                {
                    suspeitoViewModel.IdJogadorSala = jogadorSala.Id;
                    suspeitoViewModel.NickJogador   = jogadorSala != null ? _jogadorBusiness.Obter(jogadorSala.IdJogador).Descricao : "";
                }
            });

            ViewBag.QtdeJogadorPronto = suspeitosViewModel.Where(x => x.IdJogadorSala != null).Count();

            ViewBag.Suspeitos = suspeitosViewModel;

            return(View());
        }
        public Operacao RolarDados(int idJogadorSala, int idSala)
        {
            var jogadorSala = _jogadorSalaBusiness.Obter(idJogadorSala);

            if (jogadorSala == default && jogadorSala.IdSala != idSala)
            {
                return(new Operacao("Jogador não encontrado", false));
            }

            var sala = _salaBusiness.Obter(jogadorSala.IdSala);

            if (sala == default)
            {
                return(new Operacao("Sala não encotrada", false));
            }

            var crime = _crimeBusiness.Obter(sala.Id);

            if (crime == default)
            {
                return(new Operacao("Crime não encotrada", false));
            }

            if (crime.Solucionado())
            {
                return(new Operacao("A partida acabou, o caso já foi solucionado", false));
            }

            if (!jogadorSala.Jogando)
            {
                return(new Operacao("Jogador não está mais jogando", false));
            }

            if (!jogadorSala.MinhaVez())
            {
                return(new Operacao("Não está na vez desse jogador.", false));
            }

            if (jogadorSala.RolouDados)
            {
                return(new Operacao("O jogador já rolou os dados.", false));
            }

            jogadorSala.AlterarQuantidadeMovimento(_dado.Rolar());
            var jogador = _jogadorBusiness.Obter(jogadorSala.IdJogador);

            _historicoBusiness.Adicionar(new Historico(idSala, $"O jogador {jogador.Descricao} obteve {jogadorSala.QuantidadeMovimento} na rolagem dos dados."));
            _jogadorSalaBusiness.Alterar(jogadorSala);

            return(new Operacao("Operação realizada com sucesso."));
        }
Example #3
0
        public Operacao Adicionar(Sala sala, int idJogador)
        {
            var jogadoresSala = _jogadorSalaRepository.Listar(sala.Id);

            if (jogadoresSala != default && jogadoresSala.Count >= 8)
            {
                return(new Operacao("A sala já está cheia", false));
            }

            var jogador = _jogadorBusiness.Obter(idJogador);

            if (jogador == default)
            {
                return(new Operacao("Jogador não cadastrado", false));
            }

            var jogadorSala = _jogadorSalaRepository.Adicionar(new JogadorSala(idJogador, sala.Id));

            return(new Operacao("Jogador ingressado com sucesso!"));
        }