예제 #1
0
        public DadosRetorno adicionarteste(long alcodigo, int alpontos)
        {
            DadosRetorno lDadosRetorno = new DadosRetorno();

            resultados_usuario lResultado = null;

                using (var banco = new modelo_second())
                {
                    var resultadosUsuario = from p in banco.resultados_usuarioSet
                                            where (p.UsuarioSet.Id) == (alcodigo)
                                        select p;

                    if (resultadosUsuario.Count() > 0)
                    {
                        lResultado = resultadosUsuario.First();
                    }
                    else
                    {
                        lResultado = new resultados_usuario();

                        var dadosUsuario = from p in banco.UsuarioSet
                                           where (p.Id) == (alcodigo)
                                           select p;

                        lResultado.UsuarioSet = dadosUsuario.First();
                        banco.resultados_usuarioSet.Add(lResultado);
                    }

                    lResultado.pontos += alpontos;

                    banco.SaveChanges();
                }

            return lDadosRetorno;
        }
예제 #2
0
        public DadosRetorno AceitarAmigo(long alUsuario, long alAmigo,long status)
        {
            DadosRetorno lRetorno = new DadosRetorno();
            const long ACEITO = 1;
            const long RECUSADO = 2;

            try
            {
                using (var banco = new modelo_second())
                {

                    var listaConvites = from p in banco.amigosSet
                                       where p.Convidados.Id == alUsuario
                                          && p.UsuarioSet.Id == alAmigo
                                       select p;

                    if (listaConvites.Count() > 0)
                    {
                        if (status == ACEITO)
                        {
                            var listaUsuario = from p in banco.UsuarioSet
                                               where p.Id == alUsuario
                                               select p;

                            var listaUsuarioAdicionado = from p in banco.UsuarioSet
                                                         where p.Id == alAmigo
                                                         select p;

                            listaConvites.First().aceite = 1;

                            amigos lAmigos = new amigos();

                            lAmigos.aceite = 1;
                            lAmigos.UsuarioSet = listaUsuario.First();
                            lAmigos.Convidados = listaUsuarioAdicionado.First();
                            banco.amigosSet.Add(lAmigos);
                            lRetorno.liCodigo = 1;
                        }
                        else
                        {
                            banco.amigosSet.Remove(listaConvites.First());
                            lRetorno.liCodigo = 1;
                        }
                        banco.SaveChanges();
                    }
                    else
                    {
                        lRetorno.liCodigo = -2;
                    }
                }
            }
            catch (Exception ex)
            {
                lRetorno.liCodigo = -1;
                lRetorno.lsMensagem = ex.Message;
                System.Console.WriteLine(ex.Message);
            }

            return lRetorno;
        }
예제 #3
0
        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;
        }
예제 #4
0
        public DadosRetorno AguardarJogada(long aiJogador)
        {
            int liContador = 0;
            DadosRetorno ldadoRetorno = new DadosRetorno();
            Boolean lbParar = false;
            DadosUsuario lDadosUsuario;

            lDadosUsuario = controlePartidas.getDadosUsuario(aiJogador);

            while (true)
            {
                if ((lDadosUsuario.iDadosPartida.iDadosUltimaJogada.ilJogador == 0) && (lDadosUsuario.ibJogadorPrincipal))
                {
                    ldadoRetorno.liCodigo = 12;
                    lbParar = true;
                }
                else
                {
                    if (lDadosUsuario.iDadosPartida.StatusPartida == DadosPartida.STATUS_PARTIDA_FINALIZADA)
                    {
                        ldadoRetorno.lsMensagem = lDadosUsuario.iDadosPartida.iDadosUltimaJogada.ilSequencialJogado.ToString();
                        ldadoRetorno.liCodigo = 10;
                        RemovePartida(lDadosUsuario);
                        lbParar = true;
                    }
                    else
                    {
                        if ((lDadosUsuario.iDadosPartida.iDadosUltimaJogada.ilJogador == aiJogador) || (lDadosUsuario.iDadosPartida.iDadosUltimaJogada.ilJogador == 0))
                        {
                            liContador++;
                            Thread.Sleep(1000);
                            if (liContador == 25)
                            {
                                lDadosUsuario.iDadosPartida.VerificaResultado(lDadosUsuario, true);
                                ldadoRetorno.liCodigo = 11;
                                RemovePartida(lDadosUsuario);
                                lbParar = true;
                            }
                        }
                        else
                        {
                            ldadoRetorno.liCodigo = lDadosUsuario.iDadosPartida.iDadosUltimaJogada.ilSequencialJogado;
                            lbParar = true;
                        }
                    }
                }
                if (lbParar)
                {
                    break;
                }
            }

            return ldadoRetorno;
        }
예제 #5
0
        public DadosRetorno SetStatusPedidoJogo(long aiUsuario, int aiStatus)
        {
            DadosRetorno ldadoRetorno = new DadosRetorno();

            if (controlePartidas.setStatusPedidoJogo(aiUsuario, aiStatus))
            {
                ldadoRetorno.liCodigo = 1;
            }

            return ldadoRetorno;
        }
예제 #6
0
        public DadosRetorno SetItemSelecionadoJogador(int aiPosicao, long aiJogador)
        {
            DadosRetorno ldadoRetorno = new DadosRetorno();
            DadosUsuario lDadosUsuario;

            lDadosUsuario = controlePartidas.getDadosUsuario(aiJogador);

            lDadosUsuario.setItemSelecionado(aiPosicao);

            ldadoRetorno.liCodigo = lDadosUsuario.VerificaVitoria();

            if (ldadoRetorno.liCodigo == 1)
            {
                lDadosUsuario.iDadosPartida.VerificaResultado(lDadosUsuario, false);

                lDadosUsuario.iDadosPartida.StatusPartida = DadosPartida.STATUS_PARTIDA_FINALIZADA;
            }

            lDadosUsuario.iDadosPartida.iDadosUltimaJogada.ilJogador = aiJogador;
            lDadosUsuario.iDadosPartida.iDadosUltimaJogada.ilSequencialJogado = aiPosicao;

            return ldadoRetorno;
        }
예제 #7
0
        public DadosRetorno ConvidarAmigo(long aiUsuario, long aiAmigo)
        {
            DadosRetorno lDadosRetorno = new DadosRetorno();

            DadosUsuario lUsuario1;
            DadosUsuario lUsuario2;

            lUsuario1 = controlePartidas.getDadosUsuario(aiUsuario);
            lUsuario2 = controlePartidas.getDadosUsuario(aiAmigo);

            if (controlePartidas.criarPartida(lUsuario1, lUsuario2))
            {
                lDadosRetorno.liCodigo = 1;
            }

            return lDadosRetorno;
        }
예제 #8
0
        public DadosRetorno contaPartidas()
        {
            DadosRetorno lDadosRetorno = new DadosRetorno();

            lDadosRetorno.liCodigo = controlePartidas.getListaPartidas().Count;

            return lDadosRetorno;
        }
예제 #9
0
        public DadosRetorno BuscarPlayerPartida(long aiUsuario)
        {
            DadosRetorno ldadoRetorno = new DadosRetorno();
            DadosUsuario lUsuario1;
            List<DadosUsuario> lLista;
            int liContador = 0;

            lUsuario1 = controlePartidas.getDadosUsuario(aiUsuario);

            lLista = controlePartidas.buscaUsuarioOnline(aiUsuario).ToList<DadosUsuario>();

            foreach (var lUsuario2 in lLista)
            {
                if (lUsuario2 != null)
                {
                    if (controlePartidas.criarPartida(lUsuario1, lUsuario2))
                    {
                        ldadoRetorno.liCodigo = 1;
                        break;
                    }
                    else
                    {
                        liContador++;

                        if (liContador == 10)
                        {
                            break;
                        }
                    }
                }
                else
                {
                    break;
                }
               }

            return ldadoRetorno;
        }
예제 #10
0
        public DadosRetorno BuscarImagemPlayerAdversario(long aiUsuario)
        {
            DadosRetorno ldadoRetorno = new DadosRetorno();
            DadosUsuario lDadosUsuario;
            DadosPerfil lDadosPerfil;

            lDadosUsuario = controlePartidas.getDadosUsuario(aiUsuario).getUsuarioOponente();
            lDadosPerfil = iControleUsuarios.buscarDadosPerfil(lDadosUsuario.iiCodigo);

            //ldadoRetorno.liCodigo = lDadosPerfil.i;

            return ldadoRetorno;
        }
예제 #11
0
        public DadosRetorno AtualizaStatusUsuario(long aiUsuario, int aiStatus)
        {
            DadosRetorno lDadosRetorno = new DadosRetorno();

            lDadosRetorno.liCodigo = controlePartidas.atualizaStatusUsuario(aiUsuario, aiStatus);

            return lDadosRetorno;
        }
예제 #12
0
        public DadosRetorno RemoverAmigo(long alUsuario, long alAmigo)
        {
            DadosRetorno lRetorno = new DadosRetorno();

            try
            {
                using (var banco = new modelo_second())
                {

                    var listaConvitesFeito = from p in banco.amigosSet
                                            where p.Convidados.Id == alUsuario
                                               && p.UsuarioSet.Id == alAmigo
                                           select p;

                    var listaConvitesAceito = from p in banco.amigosSet
                                              where p.Convidados.Id == alAmigo
                                                 && p.UsuarioSet.Id == alUsuario
                                             select p;

                    banco.amigosSet.Remove(listaConvitesFeito.First());
                    banco.amigosSet.Remove(listaConvitesAceito.First());
                    banco.SaveChanges();
                    lRetorno.liCodigo = 1;
                }
            }
            catch (Exception ex)
            {
                lRetorno.liCodigo = -1;
                lRetorno.lsMensagem = ex.Message;
                System.Console.WriteLine(ex.Message);
            }

            return lRetorno;
        }
예제 #13
0
        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;
        }