using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.IO; using System.Windows; using System.Windows.Media; using HeBianGu.Base.WpfBase; using HeBianGu.Control.Guide; using HeBianGu.Control.ThemeSet; using HeBianGu.General.WpfControlLib; using HeBianGu.Service.Mvp; using HeBianGu.Systems.Identity; using HeBianGu.Systems.Setting; using Hopetry.Services; using SystemSetting = FileUploader.Models.SystemSetting; namespace HeBianGu.App.Disk { /// /// App.xaml 的交互逻辑 /// public partial class App : ApplicationBase { protected override MainWindowBase CreateMainWindow(StartupEventArgs e) { return new ShellWindow(); } protected override void ConfigureServices(IServiceCollection services) { base.ConfigureServices(services); // 本地持久化 services.AddXmlSerialize(); // minio 服务 services.AddSingleton(); var minioService = services.GetService(); var bucketName = minioService._bucketName; var xmlSerializerService = services.GetService(); if (File.Exists("./settings.xml")) { var setting = xmlSerializerService.Load("./settings.xml"); if (!string.IsNullOrEmpty(setting.SyncDir)) { if (setting.TaskCount == 0) { setting.TaskCount = 3; } //minioService.MirrorAsync1(bucketName, setting.SyncDir, setting.TaskCount); if (SyncSetting.Instance.IsOn) { minioService.RealTimeListen(bucketName, setting.SyncDir); } } } services.AddWindowDialog(); services.AddObjectWindowDialog(); services.AddWindowAnimation(); services.AddMessageProxy(); services.AddPropertyGridMessage(); services.AddAutoColumnPagedDataGridMessage(); //services.AddNotifyMessage(); // 设置 services.AddSetting(); // 认证 // services.AddIdentity(x => x.ProductFontSize = 50); services.AddMvc(); //services.AddProjectDefault(); services.AddXmlWebSerializerService(); //// Do :注册软件更新页面 /* services.AddAutoUpgrade(x => { x.Uri = "https://gitee.com/hebiangu/wpf-auto-update/raw/master/Install/Computer/AutoUpdate.xml"; x.UseIEDownload = true; });*/ services.AddSettingPath(); services.AddDESCryptService(); services.AddPrintBoxMessage(); // ??? services.AddWindowExplorer(); #region - More - //services.AddUpgradeViewPresenter(); //services.AddLicense(); //services.AddLicenseViewPresenter(); //services.AddVip(); //services.AddVipViewPresenter(); //services.AddSurveyViewPresenter(); //services.AddFeedbackViewPresenter(); services.AddLogoutViewPresenter(); //services.AddAboutViewPresenter(); services.AddMoreViewPresenter(x => { //x.AddPersenter(UpgradeViewPresenter.Instance); //x.AddPersenter(LicenseViewPresenter.Instance); //x.AddPersenter(VipViewPresenter.Instance); //x.AddPersenter(SurveyViewPresenter.Instance); //x.AddPersenter(FeedbackViewPresenter.Instance); //x.AddPersenter(AboutViewPresenter.Instance); x.AddPersenter(LogoutViewPresenter.Instance); }); #endregion #region - WindowCaption - //以下各种功能按钮 //services.AddLoginViewPresenter(); // 引导功能按钮 services.AddGuideViewPresenter(); services.AddHideWindowViewPresenter(); services.AddSettingViewPrenter(); //services.AddThemeRightToolViewPresenter(); //services.AddThemeRightViewPresenter(); services.AddWindowCaptionViewPresenter(x => { x.AddPersenter(LoginViewPresenter.Instance); x.AddPersenter(MoreViewPresenter.Instance); x.AddPersenter(GuideViewPresenter.Instance); x.AddPersenter(HideWindowViewPresenter.Instance); x.AddPersenter(SettingViewPresenter.Instance); //x.AddPersenter(ThemeRightToolViewPresenter.Instance); }); #endregion //string path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Module", "HeBianGu.Domain.FATFS.dll"); //var dll = Assembly.LoadFile(path); //var find = dll.GetTypes().Where(x => typeof(IExplorerService).IsAssignableFrom(x))?.FirstOrDefault(); //ServiceRegistry.Instance.Register(typeof(IExplorerService), find); //services.AddSingleton(); } protected override void Configure(IApplicationBuilder app) { base.Configure(app); app.UseSetting(x => { x.Settings.Add(MySetting.Instance); x.Settings.Add(SyncSetting.Instance); }); app.UseStyle(); //app.UseSettingDefault(); // Do:设置默认主题 app.UseLocalTheme(l => { // 主题色 l.AccentColor = (Color)ColorConverter.ConvertFromString("#FF0093FF"); l.DefaultFontSize = 13D; l.FontSize = FontSize.Normal; l.ItemHeight = 35; //l.ItemWidth = 120; l.ItemCornerRadius = 5; l.AnimalSpeed = 300; l.AccentColorSelectType = 0; l.IsUseAnimal = false; l.ThemeType = ThemeType.DarkBlack; l.StyleType = StyleType.Single; l.Language = Language.Chinese; l.AccentBrushType = AccentBrushType.LinearGradientBrush; }); } } [Displayer(Name = "同步设置", GroupName = "通用设置")] public class SyncSetting : LazySettingInstance { private bool _ison; [DefaultValue(false)] [Display(Name = "自动同步")] public bool IsOn { get { return _ison; } set { _ison = value; RaisePropertyChanged("IsOn"); } } } [Displayer(Name = "关机设置", GroupName = "通用设置")] public class MySetting : LazySettingInstance { private bool _ison; [DefaultValue(false)] [Display(Name = "是否上传完成关机")] public bool IsOn { get { return _ison; } set { _ison = value; RaisePropertyChanged("IsOn"); } } } }