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