protected override void OnActivated(IActivatedEventArgs e) { // Get the root frame Frame rootFrame = Window.Current.Content as Frame; // TODO: Initialize root frame just like in OnLaunched // Handle toast activation if (e is ToastNotificationActivatedEventArgs && SignInManager.CurrentUser != null) { var toastActivationArgs = e as ToastNotificationActivatedEventArgs; // Parse the query string (using QueryString.NET) QueryString args = QueryString.Parse(toastActivationArgs.Argument); Func <Type, Guid, Tuple <IndexGridViewItem, Guid> > ToNavigationParameters = (type, id) => { var item = IndexPage.GetIndexGridViewItems(SignInManager.CurrentUser.Role).First(x => x.Views.Contains(type)); item.Views = item.Views.OrderBy(x => x != type); return(new Tuple <IndexGridViewItem, Guid>(item, id)); }; if (args.Contains("Type")) { switch (args["Type"]) { case "Account": { rootFrame.Navigate(typeof(PanelPage), ToNavigationParameters(typeof(ViewAccount), Guid.Parse(args["ObjectId"])), new DrillInNavigationTransitionInfo()); break; } case "Order": { rootFrame.Navigate(typeof(PanelPage), ToNavigationParameters(typeof(ViewOrder), Guid.Parse(args["ObjectId"])), new DrillInNavigationTransitionInfo()); break; } case "Product": { rootFrame.Navigate(typeof(PanelPage), ToNavigationParameters(typeof(ViewProduct), Guid.Parse(args["ObjectId"])), new DrillInNavigationTransitionInfo()); break; } case "Promotion": { rootFrame.Navigate(typeof(PanelPage), ToNavigationParameters(typeof(ViewOrder), Guid.Parse(args["ObjectId"])), new DrillInNavigationTransitionInfo()); break; } case "Dic": { rootFrame.Navigate(typeof(PanelPage), ToNavigationParameters(typeof(ViewOrderDispatchStatus), Guid.Parse(args["ObjectId"])), new DrillInNavigationTransitionInfo()); break; } } } } // TODO: Handle other types of activation // Ensure the current window is active Window.Current.Activate(); }