/// <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; } }
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) { } }
/// <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); } }
public void NotificarUnionASala(ResultadoUnionSala resultado) { this.ResultadoUnion = resultado; }