public async Task ViewGraph() { ReportSelectedEvent reportEvent = new ReportSelectedEvent(); reportEvent.SelectedTimetable = SelectedTimetable; reportEvent.Report = ReportType.Graph; await _events.PublishOnUIThreadAsync(reportEvent); }
public async Task ViewArrivalDeparture() { ReportSelectedEvent reportEvent = new ReportSelectedEvent(); reportEvent.SelectedTimetable = SelectedTimetable; reportEvent.Report = ReportType.ArrivalDeparture; await _events.PublishOnUIThreadAsync(reportEvent); }
async Task IHandle <ReportSelectedEvent> .HandleAsync(ReportSelectedEvent message, CancellationToken cancellationToken) { switch (message.Report) { case ReportType.Classic: { var displayTimetableVM = IoC.Get <DisplayTimetableViewModel>(); displayTimetableVM.TimetableId = message.SelectedTimetable.TimetableId; await ActivateItemAsync(displayTimetableVM, new CancellationToken()); break; } case ReportType.Graph: { var displayTimetableGraphVM = IoC.Get <DisplayTimetableGraphViewModel>(); displayTimetableGraphVM.TimetableId = message.SelectedTimetable.TimetableId; await ActivateItemAsync(displayTimetableGraphVM, new CancellationToken()); break; } case ReportType.ScottPlotGraph: { var displayScottPlotGraphVM = new ScottPlotGraph(message.SelectedTimetable.TimetableId); var form = new ScottPlotGraphForm(displayScottPlotGraphVM); form.Show(); break; } case ReportType.ArrivalDeparture: { var departureArrivalVM = IoC.Get <DepartureArrivalTimetableViewModel>(); departureArrivalVM.RouteId = message.SelectedTimetable.RouteId; departureArrivalVM.TimetableId = message.SelectedTimetable.TimetableId; await ActivateItemAsync(departureArrivalVM, new CancellationToken()); break; } default: { throw new NotImplementedException("Report type not implemented in ShellView"); } } }