예제 #1
0
        public MainPageViewModel(JugadorVM jugadorVM)
        {
            _casillas            = new List <CasillaVM>();
            _puntuacionGlobal    = 0;
            _casillaSeleccionada = 0;
            _jugador             = jugadorVM;
            _isNotDoneLoading    = true;

            #region SignalR
            conn  = new HubConnection("https://pennydardos.azurewebsites.net/", $"username={jugador.nombre}&color={jugador.color}");
            proxy = conn.CreateHubProxy("DardosHub");
            conn.Start();

            proxy.On <int>("updateGlobalScore", updateGlobalScore);
            proxy.On <List <Jugador> >("updateRanking", updateRanking);
            proxy.On <List <Casilla> >("loadBalloons", loadBalloons);
            proxy.On <int>("updatePersonalScore", updatePersonalScore);
            proxy.On <int, string>("popBalloon", popBalloon);
            proxy.On("onConnectedIsDone", onConnectedIsDone);
            #endregion
        }
        private async void checkUsernameAvailability(bool isAvailable)
        {
            await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
                                                                                                        () =>
            {
                if (isAvailable)
                {
                    txtError.Text       = "";
                    txtError.Visibility = Visibility.Collapsed;

                    conn.Stop();
                    JugadorVM jugador        = new JugadorVM(nickname, 0, vm.selectedColor.color);
                    MainPageViewModel mainVM = new MainPageViewModel(jugador);
                    this.Frame.Navigate(typeof(MainPage), mainVM);
                }
                else
                {
                    txtError.Text       = "¡Este nickname ya está cogido!";
                    txtError.Visibility = Visibility.Visible;
                }
            }
                                                                                                        );
        }