// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Home/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); //app.UseCookiePolicy(); app.UseAuthentication(); var setting = AppSettings.Current(); setting.BaseNavigator = new DummyNavigtor(AppSettings.Current()); setting.BaseFiles = new DummyFiles(); setting.AppCenterServices = new[] { typeof(Analytics), typeof(Crashes) }; setting.LanguageContent = Language.GetText(); app.UseOoui(); Forms.Init(); VmBase.InitComponentManager(setting); VmBase.CManager.InitAllNotInitialized(); app.UseSession(); app.UseMvc(routes => { routes.MapRoute( "default", "{controller=Home}/{action=Index}/{id?}"); }); app.UseCookiePolicy(); }
/// <summary> /// Xamarin BISS MvvM initialisieren und starten IBissAppPlattform /// </summary> //public App(string deviceId, VmFiles vmFiles) public App(IBissAppPlattform plattform) { ThreadHelper.Initialize(Environment.CurrentManagedThreadId); InitializeComponent(); Language.CurrentDeviceCulture = CultureInfo.CurrentCulture; var setting = AppSettings.Current(); setting.BaseNavigator = new ViewModelXamarinPlattformNavigation((App)Current, setting); setting.BaseFiles = plattform.Files; //setting.AppCenterServices = new[] {typeof(Analytics), typeof(Crashes), typeof(Distribute), typeof(Push)}; setting.AppCenterServices = new[] { typeof(Analytics), typeof(Crashes) }; setting.LanguageContent = Language.GetText(); VmBase.InitComponentManager(setting); //ToDo: MKo Umbau finalisieren VmBase.AppConfigConstants = new AppConfigurationConstants(setting.AppConfigurationConstants); XamarinDeviceInfo.DeviceHardwareId = plattform.DeviceId; VmBase.CManager.InitHighest(); MainPage = new ViewSplash(plattform.Files); }
/// <summary> /// 页面导航跳转,生成新页面 /// </summary> /// <param name="viewInfo">页面信息</param> private void navigate(ViewInfo viewInfo) { Application.Current.MainWindow.Cursor = Cursors.Wait; UserControlBase view = null; if (Equals(viewInfo, null)) { Application.Current.Resources["UiMessage"] = "未找到页面信息,请确认MenuFunctionViewInfoMap.json配置正确!"; LogHelper.Info(Application.Current.Resources["UiMessage"].ToString()); Application.Current.MainWindow.Cursor = Cursors.Arrow; return; } //已经打开则激活 if (layoutDocumentPane.Children.Any(a => a.Title == viewInfo.DisplayName.ToString())) { var tmp = layoutDocumentPane.Children.FirstOrDefault(a => a.Title == viewInfo.DisplayName.ToString()); tmp.IsActive = true; Application.Current.Resources["UiMessage"] = $"{viewInfo.DisplayName} 页面已经打开,设置激活成功!"; Application.Current.MainWindow.Cursor = Cursors.Arrow; return; } try { view = System.Reflection.Assembly.Load(viewInfo.ViewAssemblyName) .CreateInstance(viewInfo.ViewName) as UserControlBase; } catch (Exception ex) { Application.Current.Resources["UiMessage"] = "未找到页面:" + viewInfo.ViewName + ex.Message; LogHelper.Error(Application.Current.Resources["UiMessage"] + viewInfo.ToString(), ex); Application.Current.MainWindow.Cursor = Cursors.Arrow; return; } if (Equals(view, null)) { Application.Current.Resources["UiMessage"] = "未找到页面:" + viewInfo.ViewName; LogHelper.Info(Application.Current.Resources["UiMessage"] + viewInfo.ToString()); Application.Current.MainWindow.Cursor = Cursors.Arrow; return; } VmBase viewModel = null; try { viewModel = System.Reflection.Assembly.Load(viewInfo.ViewModelAssemblyName) .CreateInstance(viewInfo.ViewModelName) as VmBase; } catch (Exception ex) { Application.Current.Resources["UiMessage"] = "未找到ViewModel:" + viewInfo.ViewModelName; LogHelper.Error(Application.Current.Resources["UiMessage"] + viewInfo.ToString(), ex); Application.Current.MainWindow.Cursor = Cursors.Arrow; return; } if (Equals(viewModel, null)) { Application.Current.Resources["UiMessage"] = "未找到ViewModel:" + viewInfo.ViewModelName; LogHelper.Info(Application.Current.Resources["UiMessage"] + viewInfo.ToString()); Application.Current.MainWindow.Cursor = Cursors.Arrow; return; } //Application.Current.Resources["UiMessage"] = viewInfo.DisplayName; //LogHelper.Info(Application.Current.Resources["UiMessage"] + viewInfo.ToString()); //view.Parameter = viewInfo.Parameter; //viewModel.Parameter = view.Parameter; viewModel.Parameter = viewInfo.Parameter; viewModel.MenuModule = viewInfo.MenuModule; view.DataContext = viewModel; //根据页面类型生成页面 switch (viewInfo.ViewType) { case ViewType.PopupNoTitle: //没有标题栏的页面 MahApps.Metro.Controls.MetroWindow popupNoTitleWindows = new MahApps.Metro.Controls.MetroWindow(); popupNoTitleWindows.WindowStartupLocation = WindowStartupLocation.CenterOwner; popupNoTitleWindows.Style = Utility.Windows.ResourceHelper.FindResource(@"CleanWindowStyleKey") as Style; popupNoTitleWindows.GlowBrush = Utility.Windows.ResourceHelper.FindResource(@"AccentColorBrush") as System.Windows.Media.Brush; popupNoTitleWindows.Owner = Application.Current.MainWindow.IsInitialized == false ? null : Application.Current.MainWindow; popupNoTitleWindows.ResizeMode = ResizeMode.NoResize; popupNoTitleWindows.IsCloseButtonEnabled = false; popupNoTitleWindows.ShowInTaskbar = popupNoTitleWindows.Owner == null ? true : false; popupNoTitleWindows.MouseDown += PopupWindows_MouseDown; popupNoTitleWindows.ShowCloseButton = false; popupNoTitleWindows.WindowStartupLocation = WindowStartupLocation.CenterScreen; popupNoTitleWindows.Width = view.Width; popupNoTitleWindows.Height = view.Height; popupNoTitleWindows.TitlebarHeight = 0; //有限实用配置的图标,没有则使用默认的图标,没有则使用主窗体的 popupNoTitleWindows.Icon = Utility.Windows.BitmapImageHelper.GetBitmapImage(viewInfo.Icon) ?? Utility.Windows.BitmapImageHelper.GetBitmapImage(@"pack://*****:*****@"CleanWindowStyleKey") as Style; popupWindows.GlowBrush = Utility.Windows.ResourceHelper.FindResource(@"AccentColorBrush") as System.Windows.Media.Brush; popupWindows.Owner = Application.Current.MainWindow.IsInitialized == false ? null : Application.Current.MainWindow; popupWindows.ResizeMode = ResizeMode.NoResize; popupWindows.IsCloseButtonEnabled = false; popupWindows.ShowCloseButton = false; popupWindows.Width = view.Width; popupWindows.Height = view.Height; popupWindows.Title = viewInfo.DisplayName; //有则使用配置的图标,没有则使用默认的图标,再没有则使用主窗体的图标 popupWindows.Icon = Utility.Windows.BitmapImageHelper.GetBitmapImage(viewInfo.Icon) ?? Utility.Windows.BitmapImageHelper.GetBitmapImage(@"pack://*****:*****@"pack://application:,,,/Solution.Desktop.Resource;component/Images/logo_16x16.ico") ?? Application.Current.MainWindow.Icon; layoutDocument.Content = view; layoutDocumentPane.Children.Add(layoutDocument); layoutDocument.IsActive = true; layoutDocument.Closed += LayoutDocument_Closed; Application.Current.MainWindow.Cursor = Cursors.Arrow; break; case ViewType.SingleWindow: //单个视图。主要为了显示帮助窗口 MahApps.Metro.Controls.MetroWindow singleWindows = new MahApps.Metro.Controls.MetroWindow(); singleWindows.TitlebarHeight = 23; singleWindows.WindowStartupLocation = WindowStartupLocation.CenterOwner; singleWindows.Style = Utility.Windows.ResourceHelper.FindResource(@"CleanWindowStyleKey") as Style; singleWindows.GlowBrush = Utility.Windows.ResourceHelper.FindResource(@"AccentColorBrush") as System.Windows.Media.Brush; singleWindows.Content = view; singleWindows.Width = view.Width; singleWindows.Height = view.Height; singleWindows.Title = viewInfo.DisplayName; //有则使用配置的图标,没有则使用默认的图标,再没有则使用主窗体的图标 singleWindows.Icon = Utility.Windows.BitmapImageHelper.GetBitmapImage(viewInfo.Icon) ?? Utility.Windows.BitmapImageHelper.GetBitmapImage(@"pack://application:,,,/Solution.Desktop.Resource;component/Images/logo_16x16.ico") ?? Application.Current.MainWindow.Icon; singleWindows.Closed += Window_Closed; singleWindows.Show(); singleWindows.Focus(); Application.Current.MainWindow.Cursor = Cursors.Arrow; break; } }