public SuspeitoJogadorSala Adicionar(int idSuspeito, int idJogadorSala) { var jogadorSala = _jogadorSalaBusiness.Obter(idJogadorSala); if (jogadorSala == default) { throw new InvalidOperationException("Jogador não encotrado."); } var suspeitosJogadorSala = _suspeitoJogadorSalaRepository.Obter(idSuspeito, idJogadorSala); if (suspeitosJogadorSala != null) { return(suspeitosJogadorSala); } var crime = _crimeBusiness.Obter(jogadorSala.IdSala); if (crime != null && crime.IdSuspeito == idSuspeito) { throw new InvalidOperationException("Esta carta faz parte do crime e não pode ser dada ao jogador."); } return(_suspeitoJogadorSalaRepository.Adicionar(new SuspeitoJogadorSala(idSuspeito, idJogadorSala))); }
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 ActionResult Jogar(int idJogadorSala) { var jogadorSala = _jogadorSalaBusiness.Obter(idJogadorSala); if (jogadorSala.IdSuspeito == null) { return(RedirectToAction("Manter", "Sala")); } int idSala = jogadorSala.IdSala; var operacao = _partidaBusiness.Iniciar(idJogadorSala, idSala); ViewBag.ID_Sala = idSala; var jogadoresSala = _jogadorSalaBusiness.Listar(idSala); ViewBag.JogadoresSuspeitos = Mapper.Map <List <JogadorSala>, List <JogadorSuspeitoViewModel> >(jogadoresSala); var locais = _localBusiness.Listar(); ViewBag.Locais = Mapper.Map <List <Local>, List <LocalViewModel> >(locais); this.CarregarAnotacoes(jogadorSala.Id); this.CarregarCartas(jogadorSala.Id); var jogadorSalaViewModel = Mapper.Map <JogadorSala, JogadorSalaViewModel>(_jogadorSalaBusiness.Obter(idJogadorSala)); var historicoPartidaViewModel = Mapper.Map <List <Historico>, List <HistoricoViewModel> >(_historicoBusiness.Listar(idSala)); Local localAtual; ViewBag.PassagemSecreta = false; if (jogadorSala.IdLocal != null) { localAtual = _localBusiness.Obter(jogadorSala.IdLocal.Value); if (localAtual.IdLocalPassagemSecreta != null) { ViewBag.PassagemSecreta = true; } } ViewBag.JogadorSala = jogadorSalaViewModel; ViewBag.Historicos = historicoPartidaViewModel; return(View()); }
public string Ingressar(int idSala, string dsJogador) { try { var crime = _crimeBusiness.Obter(idSala); if (crime != null) { return(JsonConvert.SerializeObject(new Operacao("A partida já foi iniciada.", false))); } var jogador = _jogadorBusiness.Adicionar(dsJogador); var sala = _salaBusiness.Obter(idSala); if (sala == default) { return(JsonConvert.SerializeObject(new Operacao("Sala não encontrada.", false))); } var operacao = _jogadorSalaBusiness.Adicionar(sala, jogador.Id); if (!operacao.Status) { return(JsonConvert.SerializeObject(operacao)); } var jogadorSala = _jogadorSalaBusiness.Obter(jogador.Id, sala.Id); sala.AlterarJogador(jogadorSala.Id); _salaBusiness.Alterar(sala); var retorno = Json(new { idSala = sala.Id, idJogadorSala = jogadorSala.Id }, "json"); return(JsonConvert.SerializeObject(new Operacao(JsonConvert.SerializeObject(retorno)))); } catch (Exception ex) { return(JsonConvert.SerializeObject(new Operacao(ex.Message, false))); } }