public void TestContains() { ToastArguments qs = new ToastArguments(); Assert.IsFalse(qs.Contains("name")); Assert.IsFalse(qs.Contains("name", "Andrew")); qs.Add("isBook"); Assert.IsFalse(qs.Contains("name")); Assert.IsFalse(qs.Contains("name", "Andrew")); Assert.IsTrue(qs.Contains("isBook")); Assert.IsTrue(qs.Contains("isBook", null)); Assert.IsFalse(qs.Contains("isBook", "True")); qs.Add("isBook", "True"); Assert.IsTrue(qs.Contains("isBook")); Assert.IsFalse(qs.Contains("isBook", null)); Assert.IsTrue(qs.Contains("isBook", "True")); qs.Add("name", "Andrew"); Assert.IsTrue(qs.Contains("name")); Assert.IsFalse(qs.Contains("name", null)); // Value doesn't exist Assert.IsTrue(qs.Contains("name", "Andrew")); Assert.IsFalse(qs.Contains("Name", "Andrew")); // Wrong case on name Assert.IsFalse(qs.Contains("name", "andrew")); // Wrong case on value Assert.IsFalse(qs.Contains("Name")); // Wrong case on name }
public static void HandleToastAction(ToastNotificationActivatedEventArgsCompat toastArgs) { try { // Obtain the arguments from the notification ToastArguments args = ToastArguments.Parse(toastArgs.Argument); // Obtain any user input (text boxes, menu selections) from the notification ValueSet userInput = toastArgs.UserInput; if (toastArgs.Argument.Length == 0) { return; } Logger.Debug("toast called with args: " + toastArgs.Argument); string[] arguments = toastArgs.Argument.Split(";"); foreach (string argumentString in arguments) { string[] argument = argumentString.Split("="); if (argument[0] == "action" && argument[1] == "update") { Logger.Info("updating app, caller toast"); Task.Run(() => UpdateHandler.Update(overrideSilent: true)).Wait(); } else if (argument[0] == "action" && argument[1] == "postpone") { Logger.Debug("update postponed"); return; } } } catch (Exception ex) { Logger.Error(ex, "updater failed, caller toast:"); } }
public void Setup() { // Listen to notification activation ToastNotificationManagerCompat.OnActivated += toastArgs => { // Obtain the arguments from the notification ToastArguments args = ToastArguments.Parse(toastArgs.Argument); // Obtain any user input (text boxes, menu selections) from the notification ValueSet userInput = toastArgs.UserInput; // Need to dispatch to UI thread if performing UI operations Application.Current.Dispatcher.Invoke(delegate { if (args.TryGetValue(_ActionTypeCode, out string value)) { switch (value) { case _ActionTypeStartTask: userInput.TryGetValue(_SelectionTaskKey, out object key); StartSelectedWorkTask(key?.ToString()); break; case _ActionTypeStartLunch: StartBreak(); break; } } else { ((MainWindow)Application.Current.MainWindow).ShowWindow(); } }); };
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); ToastNotificationManagerCompat.OnActivated += t => { ToastArguments args = ToastArguments.Parse(t.Argument); //t.Use Current.Dispatcher.Invoke(delegate { if (!args.Contains("action")) { return; } else { int state = args.GetInt("action"); if (state == 0) { Modetor.Net.Server.Core.HttpServers.BaseServer.Servers[args.Get("si")].Suspend(); } else if (state == 1) { Modetor.Net.Server.Core.HttpServers.BaseServer.Servers[args.Get("si")].Resume(); } else if (state == 2) { // Started.... } } //MessageBox.Show(args.Get("action")); }); }; }
public static void ToastNotificationManagerCompatOnOnActivated(ToastNotificationActivatedEventArgsCompat e) { MainWindow.DispatcherQueue.TryEnqueue(() => { //Activate window MainWindow.Activate(); //Handle toast action ToastArguments args = ToastArguments.Parse(e.Argument); if (!args.Contains(ToastAction)) { return; } switch (args[ToastAction]) { case ToastActionConversation: { var chatId = args[ToastActionConversationChat]; if (ChatActivated != null) { ChatActivated.Invoke(null, chatId); } else { PendingChatId = chatId; } break; } } }); }
public static ToastArguments MakeDeleteCacheToastArguments(string videoId) { var args = new ToastArguments(); args.Add(ToastArgumentKey_Action, ToastArgumentValue_Action_DeleteCache); args.Add(ToastArgumentKey_Id, videoId); return(args); }
private static void AssertEqual(ToastArguments expected, ToastArguments actual) { Assert.IsTrue(IsSame(expected, actual), "Expected: " + expected + "\nActual: " + actual); Assert.IsTrue(IsSame(expected, ToastArguments.Parse(actual.ToString())), "After serializing and parsing actual, result changed.\n\nExpected: " + expected + "\nActual: " + ToastArguments.Parse(actual.ToString())); Assert.IsTrue(IsSame(ToastArguments.Parse(expected.ToString()), actual), "After serializing and parsing expected, result changed.\n\nExpected: " + ToastArguments.Parse(expected.ToString()) + "\nActual: " + actual); Assert.IsTrue(IsSame(ToastArguments.Parse(expected.ToString()), ToastArguments.Parse(actual.ToString())), "After serializing and parsing both, result changed.\n\nExpected: " + ToastArguments.Parse(expected.ToString()) + "\nActual: " + ToastArguments.Parse(actual.ToString())); }
public static ToastArguments MakePlayVideoToastArguments(string videoId) { var args = new ToastArguments(); args.Add(ToastArgumentKey_Action, ToastArgumentValue_Action_PlayVideo); args.Add(ToastArgumentKey_Id, videoId); return(args); }
public static ToastArguments MakeOpenPageWithIdToastArguments(HohoemaPageType pageType, string id) { var args = new ToastArguments(); args.Add(ToastArgumentKey_Action, ToastArgumentValue_Action_OpenPage); args.Add(ToastArgumentKey_PageType, pageType.ToString()); args.Add(ToastArgumentKey_PageParameters, $"id={id}"); return(args); }
public static ToastArguments MakePlayPlaylistToastArguments(PlaylistItemsSourceOrigin origin, string playlistId) { var args = new ToastArguments(); args.Add(ToastArgumentKey_Action, ToastArgumentValue_Action_PlayPlaylist); args.Add(ToastArgumentKey_PlaylistOrigin, origin.ToString()); args.Add(ToastArgumentKey_PlaylistId, playlistId); return(args); }
private void ToastNotificationManagerCompat_OnActivated(ToastNotificationActivatedEventArgsCompat e) { var args = ToastArguments.Parse(e.Argument); Activator.Activate( args["type"], args.Contains("receivedAt") ? args["receivedAt"] : null, args.Contains("startedAt") ? args["startedAt"] : null ); }
private void Toast_OnActivated(ToastNotificationActivatedEventArgsCompat e) { var parsed = ToastArguments.Parse(e.Argument); switch (parsed["action"]) { case "viewRafflesWonPage": Process.Start("explorer.exe", "https://scrap.tf/raffles/won"); break; } }
public static ToastArguments MakeOpenPageToastArguments(HohoemaPageType pageType, string parameters = null) { var args = new ToastArguments(); args.Add(ToastArgumentKey_Action, ToastArgumentValue_Action_OpenPage); args.Add(ToastArgumentKey_PageType, pageType.ToString()); if (parameters != null) { args.Add(ToastArgumentKey_PageParameters, parameters); } return(args); }
public void TestEnumerator() { KeyValuePair <string, string>[] parameters = ToastArguments.Parse("name=Andrew;age=22;isOld").ToArray(); Assert.AreEqual(3, parameters.Length); Assert.AreEqual(1, parameters.Count(i => i.Key.Equals("name"))); Assert.AreEqual(1, parameters.Count(i => i.Key.Equals("age"))); Assert.AreEqual(1, parameters.Count(i => i.Key.Equals("isOld"))); Assert.IsTrue(parameters.Any(i => i.Key.Equals("name") && i.Value.Equals("Andrew"))); Assert.IsTrue(parameters.Any(i => i.Key.Equals("age") && i.Value.Equals("22"))); Assert.IsTrue(parameters.Any(i => i.Key.Equals("isOld") && i.Value == null)); }
private static void OnEntryWritten() { List <EventRecord> filteredEntries = new List <EventRecord>(); string eventFilterQuery = "*[System[(EventID=5152 or EventID=5157) and TimeCreated[timediff(@SystemTime) <= 6000]]]"; EventLogQuery eventsQuery = new EventLogQuery("Security", PathType.LogName, eventFilterQuery); try { EventLogReader logReader = new EventLogReader(eventsQuery); for (EventRecord eventdetail = logReader.ReadEvent(); eventdetail != null; eventdetail = logReader.ReadEvent()) { filteredEntries.Add(eventdetail); } } catch (EventLogNotFoundException) { } var query = filteredEntries.OrderByDescending(x => x.TimeCreated).FirstOrDefault(); if (query != null && query.Properties[2].Value.ToString() == @"%%14593") { var filePath = GetFriendlyPath(query.Properties[1].Value.ToString()); var preRuleNameComponent = filePath.Split('\\'); if (preRuleNameComponent.Length >= 2) { var ruleNameComponent = preRuleNameComponent[preRuleNameComponent.Length - 1]; var existRule = filteredRules.Any(x => x.Name.EndsWith(ruleNameComponent + " 出站连接")); if (existRule == false) { if (displayNotification) { new ToastContentBuilder() .AddText("发现新的出站连接请求") .AddText(filePath) .AddText("请求建立出站连接") .AddButton(new ToastButton().SetContent("允许").AddArgument("action", "AllowConnection")) .AddButton(new ToastButton().SetContent("阻止").AddArgument("action", "BlockConnection")) .Show(); displayNotification = false; ToastNotificationManagerCompat.OnActivated += toastArgs => { ToastArguments args = ToastArguments.Parse(toastArgs.Argument); FirewallActions(args, filePath, ruleNameComponent); args = null; }; } } } } }
protected override async void OnActivated(IActivatedEventArgs e) { if (e is ToastNotificationActivatedEventArgs toastActivationArgs) { // Obtain the arguments from the notification ToastArguments args = ToastArguments.Parse(toastActivationArgs.Argument); if (args.Get("action") is "Settings") { await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings:privacy-location")); } } }
public void TestIndexer_NullException() { try { string val = new ToastArguments()[null]; } catch (ArgumentNullException) { return; } Assert.Fail("Exception should have been thrown."); }
protected override void OnActivated(IActivatedEventArgs e) { // Handle notification activation if (e is ToastNotificationActivatedEventArgs toastActivationArgs) { // Obtain the arguments from the notification ToastArguments args = ToastArguments.Parse(toastActivationArgs.Argument); // Obtain any user input (text boxes, menu selections) from the notification ValueSet userInput = toastActivationArgs.UserInput; // TODO: Show the corresponding content } }
private void OnToastNotificationUserAction(ToastNotificationActivatedEventArgsCompat e) { ToastArguments args = ToastArguments.Parse(e.Argument); Application.Current.Dispatcher.Invoke(delegate { NotificationUserAction data = new() { Arguments = args.ToDictionary(p => p.Key, p => p.Value), UserInputs = e.UserInput.ToDictionary(p => p.Key, p => p.Value) }; _bootstrapper.OnToastNotificationUserAction(data); }); } }
public void TestAddExceptions_NullName() { ToastArguments query = new ToastArguments(); try { query.Add(null, "value"); } catch (ArgumentNullException) { return; } Assert.Fail("Adding null name shouldn't be allowed."); }
private void Setup() { bool encode = this.userSettingService.GetUserSetting <bool>(UserSettingConstants.NotifyOnEncodeDone); bool queue = this.userSettingService.GetUserSetting <bool>(UserSettingConstants.NotifyOnQueueDone); if (encode || queue) { if (isInitialised) { return; } this.notifier = ToastNotificationManagerCompat.CreateToastNotifier(); isInitialised = true; ToastNotificationManagerCompat.OnActivated += toastArgs => { // Obtain the arguments from the notification ToastArguments args = ToastArguments.Parse(toastArgs.Argument); // Remove any notifications that are clicked System.Collections.Generic.KeyValuePair <string, string> tag = args.FirstOrDefault(); if (!string.IsNullOrEmpty(tag.Value)) { try { ToastNotificationManagerCompat.History.Remove(tag.Value); } catch (Exception exc) { Debug.WriteLine(exc); } } // Need to dispatch to UI thread if performing UI operations Application.Current.Dispatcher.Invoke(delegate { Window w = Application.Current.MainWindow; if (w != null) { w.WindowState = WindowState.Normal; w.BringIntoView(); } }); }; } }
public void TestRemove_OnlyKey() { ToastArguments qs = new ToastArguments() { { "name", "Andrew" }, { "age", "22" } }; Assert.IsTrue(qs.Remove("age")); AssertEqual( new ToastArguments() { { "name", "Andrew" } }, qs); Assert.IsFalse(qs.Remove("age")); }
public void TestIndexer_NotFoundException() { try { var args = new ToastArguments() { { "name", "Andrew" } }; _ = args["Name"]; } catch (KeyNotFoundException) { return; } Assert.Fail("Exception should have been thrown."); }
public Form1() { InitializeComponent(); // Listen to notification activation ToastNotificationManagerCompat.OnActivated += toastArgs => { // Obtain the arguments from the notification ToastArguments args = ToastArguments.Parse(toastArgs.Argument); // Obtain any user input (text boxes, menu selections) from the notification ValueSet userInput = toastArgs.UserInput; // Need to dispatch to UI thread if performing UI operations Console.WriteLine("URL: " + args["url"]); System.Diagnostics.Process.Start(args["url"]); }; }
public void AddHeaderTest_WithExpectedArgsAndToastArguments_ReturnSelfWithHeaderAdded() { // Arrange string testToastHeaderId = "Test Header ID"; string testToastTitle = "Test Toast Title"; ToastArguments testToastArguments = new ToastArguments() .Add("arg1", 5) .Add("arg2", "tacos"); // Act ToastContentBuilder builder = new ToastContentBuilder(); ToastContentBuilder anotherReference = builder.AddHeader(testToastHeaderId, testToastTitle, testToastArguments); // Assert Assert.AreSame(builder, anotherReference); Assert.AreEqual(testToastHeaderId, builder.Content.Header.Id); Assert.AreEqual(testToastTitle, builder.Content.Header.Title); Assert.AreEqual(testToastArguments.ToString(), builder.Content.Header.Arguments); }
public void TestAdd() { ToastArguments qs = new ToastArguments(); qs.Add("name", "Andrew"); AssertEqual( new ToastArguments() { { "name", "Andrew" } }, qs); qs.Add("age", "22"); AssertEqual( new ToastArguments() { { "name", "Andrew" }, { "age", "22" } }, qs); qs.Add("name", "Lei"); AssertEqual( new ToastArguments() { { "name", "Lei" }, { "age", "22" } }, qs); string nullStr = null; qs.Add("name", nullStr); AssertEqual( new ToastArguments() { { "name" }, { "age", "22" } }, qs); }
// Add any OnActivationCompleted customization here. private void OnActivatedByToast(ToastNotificationActivatedEventArgs toastActivationArgs) { ToastArguments toastArguments = ToastArguments.Parse(toastActivationArgs.Argument); ValueSet userInput = toastActivationArgs.UserInput; if (toastArguments.Contains("opcode")) { string opcode = toastArguments["opcode"]; if ("device".Equals(opcode)) { sDeviceManager.HandleToast(toastArguments, userInput); } } // Close System Tray if (sAppServiceManager != null) { sAppServiceManager.Dispose(); sAppServiceManager = null; } }
internal void HandleToast(ToastArguments toastArguments, ValueSet userInput) { if (toastArguments.Contains("action")) { string action = toastArguments["action"]; if ("pair".Equals(action)) { string device_id = toastArguments["deviceid"]; PairWithMac(device_id); } else if ("unpair".Equals(action)) { string device_id = toastArguments["deviceid"]; UnpairWithMac(device_id); } else if ("connect".Equals(action)) { string device_id = toastArguments["deviceid"]; ConnectA2DP(device_id); } } }
public void TestCount() { ToastArguments qs = new ToastArguments(); Assert.AreEqual(0, qs.Count); qs.Add("name", "Andrew"); Assert.AreEqual(1, qs.Count); qs.Add("age", "22"); Assert.AreEqual(2, qs.Count); qs.Remove("age"); Assert.AreEqual(1, qs.Count); qs.Remove("name"); Assert.AreEqual(0, qs.Count); }
private static bool IsSame(ToastArguments expected, ToastArguments actual) { if (expected.Count != actual.Count) { return(false); } foreach (var pair in expected) { if (!actual.Contains(pair.Key)) { return(false); } if (actual.Get(pair.Key) != pair.Value) { return(false); } } return(true); }