public static async Task Start(string module)
{
Module = module;
// setup the default IoC handlers for the view models...
ViewModelFactory.Current.SetHandler(typeof(IRegisterPageViewModel), typeof(RegisterPageViewModel));
ViewModelFactory.Current.SetHandler(typeof(ILogonPageViewModel), typeof(LogonPageViewModel));
ViewModelFactory.Current.SetHandler(typeof(IReportsPageViewModel), typeof(ReportsPageViewModel));
ViewModelFactory.Current.SetHandler(typeof(IShareTargetPageViewModel), typeof(ShareTargetPageViewModel));
ViewModelFactory.Current.SetHandler(typeof(ISearchResultsPageViewModel), typeof(SearchResultsPageViewModel));
ViewModelFactory.Current.SetHandler(typeof(IMySettingsPaneViewModel), typeof(MySettingsPaneViewModel));
ViewModelFactory.Current.SetHandler(typeof(IHelpPaneViewModel), typeof(HelpPaneViewModel));
ViewModelFactory.Current.SetHandler(typeof(IReportPageViewModel), typeof(ReportPageViewModel));
// ...and then for the service proxies...
ServiceProxyFactory.Current.SetHandler(typeof(IRegisterServiceProxy), typeof(RegisterServiceProxy));
ServiceProxyFactory.Current.SetHandler(typeof(ILogonServiceProxy), typeof(LogonServiceProxy));
ServiceProxyFactory.Current.SetHandler(typeof(IEnsureTestReportsServiceProxy), typeof(EnsureTestReportsServiceProxy));
ServiceProxyFactory.Current.SetHandler(typeof(IGetReportsByUserServiceProxy), typeof(GetReportsByUserServiceProxy));
ServiceProxyFactory.Current.SetHandler(typeof(IGetReportImageServiceProxy), typeof(GetReportImageServiceProxy));
// initialize the system database...
var conn = GetSystemDatabase();
await conn.CreateTableAsync<SettingItem>();
}