private void HandleToastActivatedEvent(object sender, object e) { RpToastNotificationActivatedEventArgs rpEvent; try { ToastActivatedEventArgs myEvent = (ToastActivatedEventArgs)e; rpEvent = JsonConvert .DeserializeObject <RpToastNotificationActivatedEventArgs>( JsonConvert.SerializeObject(myEvent) ); _log.Information(LogHelper.GetMethodName(this), "{ eventArguments}", rpEvent.Arguments); QueryString args = QueryString.Parse(rpEvent.Arguments); if (args["action"] == "LoginRequested") { ShowLoginToast(); } else if (args["action"] == "LoginDataSent") { var usr = rpEvent.UserInput["Username"]; var pwd = rpEvent.UserInput["Password"]; var response = _apiHandler.GetAuth(usr, pwd); LoginResponseToast(response); if (response.Status == "success") { Application.Restart(); } } else if (args["action"] == "RateSubmitted") { if (Int32.TryParse(rpEvent.UserInput["UserRate"], out int userRate) && 1 <= userRate && userRate <= 10 && Int32.TryParse(args["SongId"], out int songId)) { var ratingResponse = _apiHandler.GetRating(songId.ToString(), userRate); if (ratingResponse.Status == "success") { _config.State.Playback = new Playback(_apiHandler.GetNowplayingList()); } } } } catch (Exception ex) { _log.Error(LogHelper.GetMethodName(this), ex); } }