async protected override void OnActivated(IActivatedEventArgs args) { await InitializeAppAsync(); if (args.Kind == ActivationKind.Protocol) { var protocol_args = args as ProtocolActivatedEventArgs; var query = protocol_args.Uri.Query.ToLower(); var reader = QueryReader.Load(query); var target_page = reader["page"]; if (target_page == "street") { StreetSideViewPage street_view = new StreetSideViewPage(); var center_point = new Geopoint(new BasicGeoposition { Latitude = App.State.NextEvent.Latitude.Value, Longitude = App.State.NextEvent.Longitude.Value, }); await street_view.InitializeAsync(center_point); Window.Current.Content = street_view; } else if (target_page == "main") { Window.Current.Content = new ApplicationHostPage(); } else if (target_page == "counter") { Window.Current.Content = new PatronCounter(); } else if (target_page == "test") { Window.Current.Content = new TestPage(); } else { Window.Current.Content = new PageNotFound(); } } else if (args.Kind == ActivationKind.ProtocolForResults) { var protocol_args = args as ProtocolForResultsActivatedEventArgs; Window.Current.Content = new LaunchResponsePage(protocol_args); } Window.Current.Activate(); }
async protected override void OnFileActivated(FileActivatedEventArgs args) { var target_file = args.Files.FirstOrDefault() as StorageFile; var query = await target_file.ReadTextAsync(); var reader = QueryReader.Load(query); var target_page = reader["page"]; if (target_page == "street") { StreetSideViewPage street_view = new StreetSideViewPage(); var center_point = new Geopoint(new BasicGeoposition { Latitude = App.State.NextEvent.Latitude.Value, Longitude = App.State.NextEvent.Longitude.Value, }); await street_view.InitializeAsync(center_point); Window.Current.Content = street_view; } else if (target_page == "main") { Window.Current.Content = new ApplicationHostPage(); } else if (target_page == "counter") { Window.Current.Content = new PatronCounter(); } else if (target_page == "test") { Window.Current.Content = new TestPage(); } else { Window.Current.Content = new PageNotFound(); } Window.Current.Activate(); }
async protected override void OnActivated(IActivatedEventArgs args) { await InitializeAppAsync(); if (args.Kind == ActivationKind.Protocol) { var protocol_args = args as ProtocolActivatedEventArgs; var query = WebUtility.UrlDecode(protocol_args.Uri.Query.ToLower()); var reader = QueryReader.Load(query); if (reader.Contains("launchcontext")) { var context = reader["launchcontext"]; if (context == "all_events") { Window.Current.Content = new ListEventsPage(App.State.Events); } else if (context == "event") { var event_id = Guid.Parse(reader["event_id"]); var event_list = App.State.Events.Where(i => i.EventID == event_id).ToList(); Window.Current.Content = new ListEventsPage(event_list); } } else if (reader.Contains("page")) { var target_page = reader["page"]; if (target_page == "street") { StreetSideViewPage street_view = new StreetSideViewPage(); var center_point = new Geopoint(new BasicGeoposition { Latitude = App.State.NextEvent.Latitude.Value, Longitude = App.State.NextEvent.Longitude.Value, }); await street_view.InitializeAsync(center_point); Window.Current.Content = street_view; } else if (target_page == "main") { Window.Current.Content = new ApplicationHostPage(); } else if (target_page == "counter") { Window.Current.Content = new PatronCounter(); } else if (target_page == "test") { Window.Current.Content = new TestPage(); } else { Window.Current.Content = new PageNotFound(); } } } else if (args.Kind == ActivationKind.ProtocolForResults) { var protocol_args = args as ProtocolForResultsActivatedEventArgs; Window.Current.Content = new LaunchResponsePage(protocol_args); } else if (args.Kind == ActivationKind.VoiceCommand) { var command_args = args as VoiceCommandActivatedEventArgs; if (command_args != null) { var rule_path = command_args.Result.RulePath[0]; var location = command_args.Result.SemanticInterpretation.Properties["location"][0].ToLower(); var events = App.State.Events; switch (rule_path) { case "show-events-today": { var today = DateTime.Now.Date; events = (from evt in events where evt.StartDateTime.Date == today && evt.Address.ToLower().Contains(location) select evt).ToList(); } break; case "show-events-tomorrow": { var tomorrow = DateTime.Now.Date.Add(TimeSpan.FromDays(1)); events = (from evt in events where evt.StartDateTime.Date == tomorrow && evt.Address.ToLower().Contains(location) select evt).ToList(); } break; case "show-events-thisweek": { var today = DateTime.Now.Date; var week_starting = today.Subtract(TimeSpan.FromDays((int)today.DayOfWeek)); var week = Math.Floor(week_starting.DayOfYear / 7.0); events = (from evt in events let evt_day = evt.StartDateTime let evt_dow = (int)evt_day.DayOfWeek let days_to_subtract = TimeSpan.FromDays(evt_dow) let evt_week_starting = evt_day.Subtract(days_to_subtract) let evt_week = Math.Floor(evt_week_starting.DayOfYear / 7.0) where week == evt_week && evt.Address.ToLower().Contains(location) select evt).ToList(); } break; case "show-events-thismonth": { var today = DateTime.Now; events = (from evt in events where evt.StartDateTime.Month == today.Month && evt.Address.ToLower().Contains(location) select evt).ToList(); } break; } Window.Current.Content = new ListEventsPage(events); } } Window.Current.Activate(); }