Пример #1
0
        /// <summary>
        /// Crea una Sala personalizada
        /// </summary>
        /// <param name="Id">String</param>
        /// <param name="EsSalaPublica">Boolean</param>
        /// <param name="Cuenta">CuentaModel</param>
        /// <param name="ActualCallback">IGameServiceCallback</param>
        /// <returns>EnumEstadoCrearSalaConId</returns>
        public EnumEstadoCrearSalaConId CrearSala(string Id, Boolean EsSalaPublica, CuentaModel Cuenta,
                                                  IGameServiceCallback ActualCallback, String DireccionIpDelCliente)
        {
            EnumEstadoCrearSalaConId EstadoDeCreacionDeSala = EnumEstadoCrearSalaConId.NoSeEncuentraEnSesion;

            if (ManejadorDeSesiones.VerificarCuentaLogeada(Cuenta))
            {
                Cuenta = ManejadorDeSesiones.ObtenerCuentaCompleta(Cuenta);
                if (!EstaElIdDeSalaEnUso(Id))
                {
                    Sala SalaAAgregar = new Sala(Id, EsSalaPublica, Cuenta, ActualCallback, DireccionIpDelCliente);
                    SalasCreadas.Add(SalaAAgregar);
                    SuscribirseAEventosDeSala(SalaAAgregar);
                    SalaCreada?.Invoke(SalaAAgregar);
                    EstadoDeCreacionDeSala = EnumEstadoCrearSalaConId.CreadaCorrectamente;
                }
                else
                {
                    EstadoDeCreacionDeSala = EnumEstadoCrearSalaConId.IdYaExistente;
                }
            }

            return(EstadoDeCreacionDeSala);
        }
Пример #2
0
        /// <summary>
        /// Agrega una Cuenta a una sala completa, si no hay salas disponibles la crea
        /// </summary>
        /// <param name="Cuenta">CuentaModel</param>
        /// <param name="ActualCallback">IGameServiceCallback</param>
        /// <returns>Verdadero si la sala cuenta se unico correctamenete a la sala o falso si no</returns>
        public Boolean UnisrseASalaDisponible(CuentaModel Cuenta, IGameServiceCallback ActualCallback, String DireccionIpDelCliente)
        {
            Boolean seUnioASala = false;

            if (ManejadorDeSesiones.VerificarCuentaLogeada(Cuenta))
            {
                Cuenta = ManejadorDeSesiones.ObtenerCuentaCompleta(Cuenta);
                Sala SalaAUnirse = BuscarSalaIncompleta();
                if (SalaAUnirse != null)
                {
                    seUnioASala = SalaAUnirse.UnirseASala(Cuenta, ActualCallback, DireccionIpDelCliente);
                    SeUnioASala?.Invoke(SalaAUnirse.Id);
                }
                else
                {
                    Sala NuevaSala = CrearSalaConIdAleatorio(Cuenta, ActualCallback, DireccionIpDelCliente);
                    SalasCreadas.Add(NuevaSala);
                    SuscribirseAEventosDeSala(NuevaSala);
                    SalaCreada?.Invoke(NuevaSala);
                    seUnioASala = true;
                }
            }
            return(seUnioASala);
        }