public Boolean criarPartida(DadosUsuario aUsuario1, DadosUsuario aUsuario2) { Boolean lbRetorno = false; DadosPartida lDadosPartida = new DadosPartida(); lDadosPartida.StatusPartida = DadosPartida.STATUS_PARTIDA_INICIANDO; aUsuario2.iiStatus = DadosPartida.STATUS_PARTIDA_AGUARDANDO; lDadosPartida.lUsuario1 = aUsuario1; lDadosPartida.lUsuario2 = aUsuario2; getListaPartidas().Add(lDadosPartida); aUsuario1.iDadosPartida = lDadosPartida; aUsuario2.iDadosPartida = lDadosPartida; if (aUsuario2.getRespostaUsuario() == DadosPartida.STATUS_PARTIDA_ACEITA) { lbRetorno = true; aUsuario1.ibJogadorPrincipal = true; aUsuario1.iiStatus = DadosUsuario.STATUS_JOGANDO; aUsuario2.iiStatus = DadosUsuario.STATUS_JOGANDO; lDadosPartida.iTabuleiro = new DadosTabuleiro(); } else { getListaPartidas().TryTake(out lDadosPartida); aUsuario2.iiStatus = DadosUsuario.STATUS_ONLINE; } return lbRetorno; }
public DadosRetorno adicionarResultado(DadosUsuario aDadosUsuario, int aiTipo) { DadosRetorno lDados = new DadosRetorno(); resultados_usuario lResultado = null; int llPontos = 3; try { using (var banco = new modelo_second()) { var resultadosUsuario = from p in banco.resultados_usuarioSet where (p.UsuarioSet.Id) == (aDadosUsuario.iiCodigo) select p; if (resultadosUsuario.Count() > 0) { lResultado = resultadosUsuario.First(); } else { lResultado = new resultados_usuario(); var dadosUsuario = from p in banco.UsuarioSet where (p.Id) == (aDadosUsuario.iiCodigo) select p; lResultado.UsuarioSet = dadosUsuario.First(); banco.resultados_usuarioSet.Add(lResultado); } if (aDadosUsuario.ibJogadorPrincipal) { llPontos = 6; } switch (aiTipo) { case VITORIA: lResultado.vitorias++; lResultado.pontos += llPontos; break; case DERROTA: lResultado.derrotas++; break; case DESISTENCIA: lResultado.desistencias++; break; } banco.SaveChanges(); lDados.liCodigo = 1; } } catch (Exception ex) { lDados.lsMensagem = ex.Message; System.Console.WriteLine(ex.Message); } return lDados; }
public int atualizaStatusUsuario(long aiCodigo,int aiStatus) { int liRetorno = 0; DadosUsuario ldados; IEnumerable<DadosUsuario> lResult; try { lResult = this.getLista().Where(item => item.iiCodigo == aiCodigo); if (lResult.Count() == 0) { ldados = new DadosUsuario(); ldados.iiCodigo = aiCodigo; this.getLista().Add(ldados); } else { ldados = lResult.First(); } if (ldados.iiStatus != DadosPartida.STATUS_PARTIDA_AGUARDANDO) { ldados.iiStatus = aiStatus; } ldados.alive = DateTime.Now; liRetorno = ldados.iiStatus; } catch (Exception ex) { liRetorno = -1; } return liRetorno; }
private void RemovePartida(DadosUsuario aUsuario) { DadosPartida ll = null; ll = aUsuario.iDadosPartida; aUsuario.iDadosPartida.lUsuario1.iListaSelecaoJogador.Clear(); aUsuario.iDadosPartida.lUsuario2.iListaSelecaoJogador.Clear(); controlePartidas.getListaPartidas().TryTake(out ll); controlePartidas.getListaPartidas().TryPeek(out ll); aUsuario.iDadosPartida = null; }
public DadosRetorno VerificaResultado(DadosUsuario aDadosUsuarioVitoria, Boolean abVitoriaPorAbandono) { DadosRetorno lDados = new DadosRetorno(); if (Monitor.TryEnter(outputLock)) { try { DadosUsuario lDadosUsuarioDerrota; this.adicionarResultado(aDadosUsuarioVitoria, VITORIA); if (aDadosUsuarioVitoria.ibJogadorPrincipal) { lDadosUsuarioDerrota = aDadosUsuarioVitoria.iDadosPartida.lUsuario2; } else { lDadosUsuarioDerrota = aDadosUsuarioVitoria.iDadosPartida.lUsuario1; } if (abVitoriaPorAbandono) { this.adicionarResultado(lDadosUsuarioDerrota, DESISTENCIA); } else { this.adicionarResultado(lDadosUsuarioDerrota, DERROTA); } } finally { Monitor.Exit(outputLock); } } return lDados; }