public async Task <SanityCheckResult> Check(Type[] types, BootLog log) { var result = new SanityCheckResult(); foreach (var type in types) { try { var check = (ICheckSanity)serviceLocator.GetService(type); var sane = await check.Probe(); result.Add(type, sane); if (sane) { log.Info(Constants.BootComponents.SanityChecks, $"{type.Name} passed."); } else { log.Error(Constants.BootComponents.SanityChecks, $"{type.Name} failed."); } } catch (Exception) { result.Add(type, false); log.Error(Constants.BootComponents.SanityChecks, $"{type.Name} failed significantly."); } } return(result); }
private void SanityCheckCallback(SanityCheckResult result) { var notificationService = Container.Resolve <NotificationService>(); if (result.UserMessages != null) { notificationService.QueueMessages(result.UserMessages); } InitializeShell(); }
private void CheckDatabaseCallback(bool databaseExisted, Action <SanityCheckResult> callback) { var result = new SanityCheckResult(); var frameworkMessage = CheckFrameworkVersion(); if (frameworkMessage != null) { result.UserMessages = new List <NotifyUserMessageEventArgs> { frameworkMessage } } ; WorkHandler.Run(RetryFailedUserReports); if (!databaseExisted) { result.DatabaseCreated = true; WorkHandler.Run(MigrateEsentToDatabase, cacheStore => MigrateEsentToDatabaseCallback(cacheStore, callback, result)); } else { callback.Invoke(result); } }
private void MigrateEsentToDatabaseCallback(EsentPersistentDictionary cacheStore, Action <SanityCheckResult> callback, SanityCheckResult result) { if (cacheStore != null && _windowManager.Confirm(Resx.Delete, Resx.DeleteEsentConfirmationMessage)) { DeleteEsent(cacheStore); } callback.Invoke(result); }