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!")); }
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); }
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()); }