Exemplo n.º 1
0
        /// <summary>
        /// Agrega una Cuenta al a la sala que tenga ese Id
        /// </summary>
        /// <param name="Id">String</param>
        /// <param name="CuentaAAgregar">Cuenta</param>
        /// <param name="ActualCallback">IGameServiceCallback</param>
        /// <returns>EnumEstadoDeUnirseASala</returns>
        public EnumEstadoDeUnirseASala UnirseASalaConId(String Id, CuentaModel CuentaAAgregar, IGameServiceCallback ActualCallback,
                                                        String DireccionIpDelCliente)
        {
            EnumEstadoDeUnirseASala estadoDeUnirseASala = EnumEstadoDeUnirseASala.NoSeEncuentraEnSesion;

            if (ManejadorDeSesiones.VerificarCuentaLogeada(CuentaAAgregar))
            {
                estadoDeUnirseASala = EnumEstadoDeUnirseASala.SalaInexistente;
                CuentaAAgregar      = ManejadorDeSesiones.ObtenerCuentaCompleta(CuentaAAgregar);
                foreach (Sala sala in SalasCreadas)
                {
                    if (sala.Id == Id)
                    {
                        if (sala.UnirseASala(CuentaAAgregar, ActualCallback, DireccionIpDelCliente))
                        {
                            estadoDeUnirseASala = EnumEstadoDeUnirseASala.UnidoCorrectamente;
                            SeUnioASala?.Invoke(sala.Id);
                        }
                        else
                        {
                            estadoDeUnirseASala = EnumEstadoDeUnirseASala.SalaLlena;
                        }
                        break;
                    }
                }
            }

            return(estadoDeUnirseASala);
        }
Exemplo n.º 2
0
        public void UnirseASalaPrivadaTest()
        {
            CuentaModel cuenta = new CuentaModel()
            {
                NombreUsuario     = "WingXstar",
                Contrasena        = "PepitoElgrillo45",
                CorreoElectronico = "*****@*****.**"
            };
            bool expectedResut = false;

            EnumEstadoDeUnirseASala estado = EnumEstadoDeUnirseASala.NoSeEncuentraEnSesion;

            GameService service = new GameService();

            Assert.AreEqual(expectedResut, service.UnirseASalaPrivada("1234", cuenta));
        }
Exemplo n.º 3
0
    /// <summary>
    /// Le solicita al cliente del juego unirse a una sala privada
    /// </summary>
    public void UnirseASalaPrivada()
    {
        InicializarServicio();
        if (VerificarIdValido())
        {
            String  IdDeLaSala        = txtBoxIdSala.text;
            Boolean SeUniServicioChat = UnirseAlServicioDeChat();
            EnumEstadoDeUnirseASala EstadoUnirseASala = UnirseAlServicioDeJuego(IdDeLaSala);
            switch (EstadoUnirseASala)
            {
            case EnumEstadoDeUnirseASala.UnidoCorrectamente:
                if (!SeUniServicioChat)
                {
                    Debug.LogWarning("Chat no disponible");
                    PanelException.SetActive(true);
                    PanelException.GetComponentInChildren <Text>().text = "El servicio de chat esta temporalmente inactivo.";
                }
                ClienteDelJuego.SolcitarDetallesSala();
                SceneManager.LoadScene("Lobby");
                break;

            case EnumEstadoDeUnirseASala.SalaInexistente:
                Debug.LogWarning("Error de Sala no Existente");
                PanelException.SetActive(true);
                PanelException.GetComponentInChildren <Text>().text = "Error. La sala a la que desea unirse no existe.";
                break;

            case EnumEstadoDeUnirseASala.SalaLlena:
                Debug.LogWarning("Error de Sala Llena");
                PanelException.SetActive(true);
                PanelException.GetComponentInChildren <Text>().text = "Error. La sala solicitada se encuentra llena";
                break;

            case EnumEstadoDeUnirseASala.NoSeEncuentraEnSesion:
                Debug.LogWarning("Error de conexion a sala");
                PanelException.SetActive(true);
                PanelException.GetComponentInChildren <Text>().text = "Error. No se encuentra la sesión";
                break;
            }
        }
    }