Example #1
0
        /// <summary>
        /// Lógica para administrar el resultado de la union a una sala.
        /// </summary>
        /// <param name="resultado"></param>
        public void NotificarUnionASala(ResultadoUnionSala resultado)
        {
            switch (resultado)
            {
            case ResultadoUnionSala.NoExisteId:
                new Mensaje
                {
                    TituloMensaje = Properties.Resources.Sala_NoEncontradaTitulo,
                    Contenido     = Properties.Resources.Sala_NoEncontradaContenido
                }.ShowDialog();
                break;

            case ResultadoUnionSala.ContraseñaIncorrecta:
                new Mensaje
                {
                    TituloMensaje = Properties.Resources.Sala_ContraseñaIncorrectaTitulo,
                    Contenido     = Properties.Resources.Sala_ContraseñaIncorrectaContenido
                }.ShowDialog();
                break;

            case ResultadoUnionSala.NoHayCupo:
                new Mensaje
                {
                    TituloMensaje = Properties.Resources.Sala_NoHayCupoTitulo,
                    Contenido     = Properties.Resources.Sala_NoHayCupoContenido
                }.ShowDialog();
                break;

            case ResultadoUnionSala.EnJuego:
                new Mensaje
                {
                    Title         = Properties.Resources.Sala_EnJuegoTitulo,
                    TituloMensaje = Properties.Resources.Sala_EnJuegoTitulo,
                    Contenido     = Properties.Resources.Sala_EnJuegoContenido
                }.ShowDialog();
                break;

            case ResultadoUnionSala.UnionExitosa:
                Juego ventanaJuego = new Juego();
                ventanaJuego.Show();
                MenuPrincipal menuPrincipal = Application.Current.Windows.OfType <MenuPrincipal>().SingleOrDefault();
                menuPrincipal.Hide();
                break;

            default: break;
            }
        }
Example #2
0
        public void UnionASala_ExisteSala_InformaciónCorrecta()
        {
            try
            {
                Uri baseAddress = new Uri("net.tcp://localhost:8090/UNO.Contratos");
                serviceHost = new ServiceHost(typeof(UNO.Contratos.JuegoUNOServicio), baseAddress);
                Binding                 binding         = new NetTcpBinding();
                EndpointAddress         endpointAddress = new EndpointAddress("net.tcp://localhost:8090/UNOServerTest");
                var                     endpoint        = serviceHost.AddServiceEndpoint(typeof(UNO.Contratos.LogicaJuego.IAdministrarJuego), binding, endpointAddress.Uri);
                ServiceMetadataBehavior smb             = new ServiceMetadataBehavior
                {
                    HttpGetEnabled = false
                };
                serviceHost.Description.Behaviors.Add(smb);

                salaAdmin       = new SalaCallbackAdmin();
                instanceContext = new InstanceContext(salaAdmin);
                salaCliente     = new AdministrarJuegoClient(instanceContext);
                endpoint.Name   = salaCliente.Endpoint.Name;

                serviceHost.Open();

                Jugador nuevoJugador = new Jugador
                {
                    Nickname = "angelJuarez"
                };

                Sala salaAUnirse = new Sala
                {
                    Id                     = "774809",
                    Contraseña             = "123456",
                    NumeroTotalDeJugadores = 3
                };

                salaCliente.UnirseASala(salaAUnirse, nuevoJugador);

                ResultadoUnionSala resultadoUnionObtenido = salaAdmin.ResultadoUnion;
                ResultadoUnionSala resultadoUnionEsperado = ResultadoUnionSala.UnionExitosa;

                Assert.IsTrue(resultadoUnionObtenido == resultadoUnionEsperado);
            }
            catch (EndpointNotFoundException)
            {
            }
        }
Example #3
0
        /// <summary>
        /// Lógica para unir un jugador a la sala.
        /// </summary>
        /// <param name="salaAUnirse">Sala a la cual se va a unir</param>
        /// <param name="jugador">Jugador que se va a unir a la sala</param>
        public void UnirseASala(Sala salaAUnirse, Jugador jugador)
        {
            ResultadoUnionSala resultadoUnionSala = ResultadoUnionSala.NoExisteId;
            IJuegoCallback     callbackActual     = JuegoCallbackActual;

            var salaBuscada = salasCreadas.Find(sala => sala.Id.Equals(salaAUnirse.Id));

            if (salaBuscada != null)
            {
                if (salaBuscada.Contraseña.Equals(salaAUnirse.Contraseña))
                {
                    if (salaBuscada.EnJuego)
                    {
                        resultadoUnionSala = ResultadoUnionSala.EnJuego;
                    }
                    else
                    {
                        if (HayCupoEnSala(salaBuscada))
                        {
                            resultadoUnionSala = ResultadoUnionSala.UnionExitosa;
                        }
                        else
                        {
                            resultadoUnionSala = ResultadoUnionSala.NoHayCupo;
                        }
                    }
                }
                else
                {
                    resultadoUnionSala = ResultadoUnionSala.ContraseñaIncorrecta;
                }
            }

            callbackActual.NotificarUnionASala(resultadoUnionSala);
            if (salaBuscada != null && resultadoUnionSala == ResultadoUnionSala.UnionExitosa)
            {
                callbackActual.ObtenerInformacionDeSala(salaBuscada);
                salaBuscada.JugadoresEnSala.Add(jugador, callbackActual);
                AgregarNuevoJugadorEnSala(salaBuscada, jugador);
            }
        }
Example #4
0
 public void NotificarUnionASala(ResultadoUnionSala resultado)
 {
     this.ResultadoUnion = resultado;
 }