//Model has finished banning a user. Update the banned list private void BanUserCompleteHandler(object sender, DJModelArgs args) { this.Dispatcher.BeginInvoke(new InvokeDelegate(() => { User bannedUser = (User)args.UserState; if (!bannedUserList.Contains(bannedUser)) { bannedUserList.Add(bannedUser); LabelNoneBanned.Visibility = Visibility.Collapsed; } if (userList.Contains(bannedUser)) userList.Remove(bannedUser); })); }
//The wait time for a full singer queue rotation has been updated. Update the wait timer. private void WaitTimeCompleteHandler(object source, DJModelArgs args) { Dispatcher.BeginInvoke(new InvokeDelegate(() => { LabelWaitTime.Content = model.WaitTime; })); }
//New QR code has been obtained from the server. Generate the QR form. private void QRNewCodeCompleteHandler(object source, DJModelArgs args) { if (!args.Error) { QRGenerator.GenerateQR(model.QRCode, "Venue X", ""); } }
//Call to logout from the server returned. Close the app. private void LogoutCompleteHandler(object source, DJModelArgs args) { Dispatcher.BeginInvoke(new InvokeDelegate(() => { //Close all open windows for (int intCounter = App.Current.Windows.Count - 1; intCounter >= 0; intCounter--) App.Current.Windows[intCounter].Close(); })); }
//Login returned from the server. Check if credentials were valid. Close the login form if login was successful. private void LoginCompleteHandler(object source, DJModelArgs args) { Dispatcher.BeginInvoke(new InvokeDelegate(() => { EndLoginAnimation(); })); //Error occurred so display error message and try again if (args.Error) { Dispatcher.BeginInvoke(new InvokeDelegate(() => { LabelLoginMessage.Content = "Inavlid user name and password"; ShowLoginControls(); })); } //Successfully logged in else { Dispatcher.BeginInvoke(new InvokeDelegate(() => { ScrollViewerLogin.Visibility = Visibility.Collapsed; })); } }
//Call to create a karaoke session returned from the server. Enable karaoke playback. private void CreateSessionCompleteHandler(object source, DJModelArgs args) { playState = PlayState.NotStarted; Dispatcher.BeginInvoke(new InvokeDelegate(() => { EnableNowPlaying(); EnableSingerQueueGroup(); MenuItemStartSession.Visibility = Visibility.Collapsed; MenuItemCloseSession.Visibility = Visibility.Visible; })); }
//Call to close the current karaoke session returned from the server. Disable karaoke playback. private void CloseSessionCompleteHandler(object source, DJModelArgs args) { playState = PlayState.NoSession; Dispatcher.BeginInvoke(new InvokeDelegate(() => { karaokePlayer.Stop(); karaokePlayer.CloseCDGWindow(); UpdateCDGSource(DJModel.Instance.BackgroundImage); DisableNowPlaying(); DisableSingerQueueGroup(); MenuItemStartSession.Visibility = Visibility.Visible; MenuItemCloseSession.Visibility = Visibility.Collapsed; })); }
//Model has finished unbanning a user. Update the combobox of users available to be banned private void UnbanUserCompleteHandler(object sender, DJModelArgs args) { this.Dispatcher.BeginInvoke(new InvokeDelegate(() => { User unbannedUser = (User)args.UserState; if (!userList.Contains(unbannedUser)) userList.Add(unbannedUser); if (bannedUserList.Contains(unbannedUser)) { bannedUserList.Remove(unbannedUser); if (bannedUserList.Count == 0) LabelNoneBanned.Visibility = Visibility.Visible; } })); }
//Model has finished retrieving the list of banned users private void GetBannedUserCompleteHandler(object sender, DJModelArgs args) { //Display the list of banned users in the list box this.Dispatcher.BeginInvoke(new InvokeDelegate(() => { List<User> banned = model.BannedUserList; if (banned.Count > 0) { foreach (User user in banned) { if (!bannedUserList.Contains(user)) bannedUserList.Add(user); } } else { LabelNoneBanned.Visibility = Visibility.Visible; } })); }