public string SelecionarSuspeito(int idSala, int idJogadorSala, int idSuspeito) { try { var sala = _salaBusiness.Obter(idSala); if (sala == default) { return(JsonConvert.SerializeObject(new Operacao("Sala não encontrada.", false))); } var jogadorSala = _jogadorSalaBusiness.Obter(idJogadorSala); if (jogadorSala == default) { return(JsonConvert.SerializeObject(new Operacao("Jogador Sala não encontrado.", false))); } var suspeito = _suspeitoBusiness.Obter(idSuspeito); if (suspeito == default) { return(JsonConvert.SerializeObject(new Operacao("Suspeito não encontrado.", false))); } if (jogadorSala.IdSala != sala.Id) { return(JsonConvert.SerializeObject(new Operacao("Jogador Sala não pertence a sala passada.", false))); } var suspeitoDesconsiderado = jogadorSala.IdSuspeito == null ? null : _suspeitoBusiness.Obter(jogadorSala.IdSuspeito.Value); jogadorSala.AlterarSuspeito(suspeito.Id); _jogadorSalaBusiness.Alterar(jogadorSala); var jogador = _jogadorBusiness.Obter(jogadorSala.IdJogador); var retorno = Json(new { DescricaoJogador = jogador.Descricao, DescricaoSuspeitoSelecionado = suspeito.Descricao, DescricaoSuspeitoDesconsiderado = suspeitoDesconsiderado == null ? "" : suspeitoDesconsiderado.Descricao }, "json"); var operacao = new Operacao(JsonConvert.SerializeObject(retorno), true); return(JsonConvert.SerializeObject(operacao)); } catch (Exception ex) { return(JsonConvert.SerializeObject(new Operacao(ex.Message, false))); } }
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.")); }