123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- namespace HistoryView.ViewModels;
- internal partial class LoadingViewModel : ObservableObject
- {
- public LoadingViewModel(IEventAggregator eventAggregator,
- LanguageLoader languageLoader,
- HubSender connector)
- {
- this.languageLoader = languageLoader;
- this.eventAggregator = eventAggregator;
- this.connector = connector;
- Task.Factory.StartNew(Init);
- }
- private readonly IEventAggregator eventAggregator;
- private readonly LanguageLoader languageLoader;
- private readonly HubSender connector;
- private async void Init()
- {
- UpdateProgerssBar(0, "Loading Base Config");
- if (!BaseConfigFileLoader.Load(out BasicInfo? basicInfo) ||
- basicInfo is null ||
- string.IsNullOrEmpty(basicInfo.DBConnectionString) ||
- string.IsNullOrEmpty(basicInfo.ServerAddress))
- {
- MessageBox.Show("Load Base Config Failed");
- return;
- }
- UpdateProgerssBar(20, "Connecting Server");
- if (!connector.Initialize(basicInfo.ServerAddress, basicInfo.ServerPort, "UIHub", 5))
- {
- MessageBox.Show("Connect to Server Failed");
- App.Current.Dispatcher.InvokeShutdown();
- }
- Thread.Sleep(500);
- UpdateProgerssBar(40, "Loading Languages");
- this.languageLoader.LoadLanguages(FilePaths.LanguageConfigFilePath);
- Thread.Sleep(500);
- UpdateProgerssBar(60, "Loading Configurations");
- await this.connector.RequestHardwares();
- Thread.Sleep(500);
- UpdateProgerssBar(80, "Loading Hareware infomations");
- await this.connector.RequestConfigFiles();
- Thread.Sleep(500);
- UpdateProgerssBar(100, "Loading settings");
- Thread.Sleep(500);
- eventAggregator.GetEvent<WindowSwitch>().Page = Pages.Login;
- eventAggregator.GetEvent<WindowSwitch>().Publish();
- }
- [ObservableProperty]
- private string? _Hint;
- [ObservableProperty]
- private double _ProgressValue;
- private void UpdateProgerssBar(double number, string? hint = default)
- {
- Application.Current.Dispatcher.Invoke(() =>
- {
- this.ProgressValue = number;
- this.Hint = hint;
- });
- }
- }
|