private Operacao IniciarPartida(Sala sala, List <JogadorSala> jogadoresSala)
        {
            var armas     = _armaBusiness.Listar();
            var locais    = _localBusiness.Listar();
            var suspeitos = _suspeitoBusiness.Listar();

            if (armas == null || locais == null || suspeitos == null || !armas.Any() || !locais.Any() || !suspeitos.Any())
            {
                return(new Operacao("Ocorreu um problema ao carregar as cartas.", false));
            }

            var crime = _crimeBusiness.Adicionar(sala);

            armas     = armas.Where(a => a.Id != crime.IdArma).ToList();
            locais    = locais.Where(l => l.Id != crime.IdLocal).ToList();
            suspeitos = suspeitos.Where(s => s.Id != crime.IdSuspeito).ToList();

            DistribuirCartasJogadores(jogadoresSala, armas, locais, suspeitos);
            jogadoresSala = DefinirOrdemJogadoresSalaETurnoInicial(jogadoresSala);

            var jogador = _jogadorBusiness.Obter(jogadoresSala.First(_ => _.VezJogador && _.Ativo).IdJogador);

            _historicoBusiness.Adicionar(new Historico(sala.Id, $"Partida #{sala.Id} Iniciada. O jogador {jogador.Descricao} inicia"));
            return(new Operacao("Partida iniciada com sucesso!"));
        }
Beispiel #2
0
        public List <SuspeitoJogadorSala> Listar(int idJogadorSala)
        {
            var suspeitosJogadorSala = _suspeitoJogadorSalaRepository.Listar(idJogadorSala);

            if (suspeitosJogadorSala != null && suspeitosJogadorSala.Any())
            {
                var suspeitos = _suspeitoBusiness.Listar();
                suspeitosJogadorSala.ForEach(suspeitoJogadorSala => suspeitoJogadorSala.Suspeito = suspeitos.First(_ => _.Id == suspeitoJogadorSala.IdSuspeito));
            }

            return(suspeitosJogadorSala);
        }
Beispiel #3
0
        public List <JogadorSala> Listar(int idSala)
        {
            var listaJogadores = _jogadorSalaRepository.Listar(idSala);
            var suspeitos      = _suspeitoBusiness.Listar();
            var jogadores      = _jogadorBusiness.Listar(listaJogadores.Select(_ => _.IdJogador).ToList());

            listaJogadores.ForEach(x => x.Suspeito = suspeitos.FirstOrDefault(y => y.Id == x.IdSuspeito));
            if (jogadores != null)
            {
                listaJogadores.ForEach(x => x.Jogador = jogadores.FirstOrDefault(y => y.Id == x.IdJogador));
            }

            return(listaJogadores);
        }
        public void CriarAnotacoes(int idJogadorSala)
        {
            var suspeitos          = _suspeitoBusiness.Listar();
            var anotacoesSuspeitos = _anotacaoSuspeitoRepository.Listar(idJogadorSala);

            if (anotacoesSuspeitos != null && anotacoesSuspeitos.Any())
            {
                // Mantem apenas os suspeitos que ainda não foram cadastrada nas anotações no Jogador na sala.
                suspeitos = suspeitos.Where(suspeito => !anotacoesSuspeitos.Any(anotacao => anotacao.IdSuspeito == suspeito.Id)).ToList();
            }

            // Adiciona as suspeitos que ainda não foram cadastradas.
            var anotacoes = new List <AnotacaoSuspeito>();

            suspeitos.ForEach(suspeito => anotacoes.Add(new AnotacaoSuspeito(suspeito.Id, idJogadorSala)));
            _anotacaoSuspeitoRepository.Adicionar(anotacoes);
        }
        public Crime Adicionar(Sala sala)
        {
            var crime = this.Obter(sala.Id);

            if (crime != default)
            {
                return(crime);
            }

            var armas     = _armaBusiness.Listar();
            var locais    = _localBusiness.Listar();
            var suspeitos = _suspeitoBusiness.Listar();

            Random sorteio = new Random();

            var armaCrime     = armas[sorteio.Next(armas.Count)];
            var localCrime    = locais[sorteio.Next(locais.Count)];
            var suspeitoCrime = suspeitos[sorteio.Next(suspeitos.Count)];

            return(_crimeRepository.Adicionar(new Crime(sala.Id, suspeitoCrime.Id, armaCrime.Id, localCrime.Id)));
        }
        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 ActionResult ModalPalpite()
 {
     ViewBag.Armas     = Mapper.Map <List <Arma>, List <ArmaViewModel> >(_armaBusiness.Listar());
     ViewBag.Suspeitos = Mapper.Map <List <Suspeito>, List <SuspeitoViewModel> >(_suspeitoBusiness.Listar());
     return(PartialView());
 }