public void Initialize() { LoadingErrorManager.Clear(); ServiceFactory.Initialize(new LayoutService(), new ValidationService()); var assembly = GetType().Assembly; ServiceFactory.ResourceService.AddResource(assembly, "DataTemplates/Dictionary.xaml"); ServiceFactory.StartupService.Show(); ServiceFactory.StartupService.OnCloseEvent += Close; if (ServiceFactory.StartupService.PerformLogin()) { Login = ServiceFactory.StartupService.Login; Password = ServiceFactory.StartupService.Password; try { ServiceFactory.StartupService.DoStep("Загрузка лицензии"); ClientManager.GetLicense(); ServiceFactory.StartupService.ShowLoading("Загрузка модулей", 5); CreateModules(); ServiceFactory.StartupService.DoStep("Чтение конфигурации"); ServiceFactory.StartupService.AddCount(GetModuleCount() + 6); ServiceFactory.StartupService.DoStep("Синхронизация файлов"); ClientManager.UpdateFiles(); ServiceFactory.StartupService.DoStep("Загрузка конфигурации с сервера"); ClientManager.GetConfiguration("Administrator\\Configuration"); ProcedureExecutionContext.Initialize( ContextType.Client, () => { return ClientManager.SystemConfiguration; } ); ExplicitValue.ResolveObjectName += ObjectReference_ResolveObjectName; ExplicitValue.ResolveObjectValue += ExplicitValue_ResolveObjectValue; BeforeInitialize(true); if (Application.Current != null) { var shell = new AdministratorShellViewModel(); shell.LogoSource = "rubezhLogo"; ServiceFactory.MenuService = new MenuService((vm) => ((MenuViewModel)shell.Toolbar).ExtendedMenu = vm); RunShell(shell); } ServiceFactory.StartupService.Close(); AterInitialize(); ClientManager.StartPoll(); SafeRubezhService.GKProgressCallbackEvent -= new Action<RubezhAPI.GKProgressCallback>(OnGKProgressCallbackEvent); SafeRubezhService.GKProgressCallbackEvent += new Action<RubezhAPI.GKProgressCallback>(OnGKProgressCallbackEvent); ServiceFactory.Events.GetEvent<ConfigurationChangedEvent>().Subscribe(OnConfigurationChanged); ServiceFactory.Events.GetEvent<ConfigurationClosedEvent>().Subscribe(OnConfigurationClosed); SafeRubezhService.ConfigurationChangedEvent += () => { ApplicationService.Invoke(OnConfigurationChanged); }; SafeRubezhService.RestartEvent += () => { ApplicationService.Invoke(Restart); }; MutexHelper.KeepAlive(); } catch (Exception e) { Logger.Error(e, "Bootstrapper.Initialize"); MessageBoxService.ShowException(e); if (Application.Current != null) Application.Current.Shutdown(); return; } } else { if (Application.Current != null) Application.Current.Shutdown(); return; } }
public void Initialize() { LoadingErrorManager.Clear(); ServiceFactory.Initialize(new LayoutService(), new ProgressService(), new ValidationService()); var assembly = GetType().Assembly; ServiceFactory.ResourceService.AddResource(new ResourceDescription(assembly, "DataTemplates/Dictionary.xaml")); if (ServiceFactory.LoginService.ExecuteConnect()) { try { CreateModules(); LoadingService.ShowLoading("Чтение конфигурации", 4); LoadingService.AddCount(GetModuleCount() + 6); LoadingService.DoStep("Синхронизация файлов"); FiresecManager.UpdateFiles(); LoadingService.DoStep("Загрузка конфигурации с сервера"); FiresecManager.GetConfiguration("Administrator/Configuration"); GKDriversCreator.Create(); BeforeInitialize(true); //LoadingService.DoStep("Старт полинга сервера"); //FiresecManager.StartPoll(true); LoadingService.DoStep("Проверка прав пользователя"); if (FiresecManager.CheckPermission(PermissionType.Adm_ViewConfig) == false) { MessageBoxService.Show("Нет прав на работу с программой"); FiresecManager.Disconnect(); } else if (Application.Current != null) { var shell = new AdministratorShellViewModel(); ServiceFactory.MenuService = new MenuService((vm) => ((MenuViewModel)shell.Toolbar).ExtendedMenu = vm); RunShell(shell); } LoadingService.Close(); AterInitialize(); ServiceFactory.Events.GetEvent<ConfigurationChangedEvent>().Subscribe(OnConfigurationChanged); ServiceFactory.Events.GetEvent<ConfigurationClosedEvent>().Subscribe(OnConfigurationClosed); MutexHelper.KeepAlive(); } catch (Exception e) { Logger.Error(e, "Bootstrapper.Initialize"); MessageBoxService.ShowException(e); if (Application.Current != null) Application.Current.Shutdown(); return; } } else { if (Application.Current != null) Application.Current.Shutdown(); return; } }