private async Task <VostokApplicationRunResult> InitializeApplicationAsync() { log.Info("Initializing application."); ChangeStateTo(VostokApplicationState.Initializing); try { RequirementsChecker.Check(settings.Application, environment); var initializationResult = await RunPhaseAsync(true).ConfigureAwait(false); if (initializationResult.State != VostokApplicationState.Initialized) { return(initializationResult); } environment.ServiceBeacon.Start(); var beaconStarted = await WaitForServiceBeaconRegistrationIfNeededAsync(environment.ServiceBeacon).ConfigureAwait(false); if (!beaconStarted) { return(ReturnResult(VostokApplicationState.CrashedDuringInitialization, new Exception($"Service beacon hasn't registered in '{settings.BeaconRegistrationTimeout}'."))); } return(initializationResult); } catch (Exception error) { log.Error(error, "Unhandled exception has occurred while initializing the application."); return(ReturnResult(VostokApplicationState.CrashedDuringInitialization, error)); } }
private async Task <VostokApplicationRunResult> InitializeApplicationAsync() { log.Info("Initializing application."); ChangeStateTo(VostokApplicationState.Initializing); try { RequirementsChecker.Check(settings.Application.GetType(), environment); return(await RunPhaseAsync(true).ConfigureAwait(false)); } catch (Exception error) { log.Error(error, "Unhandled exception has occurred while initializing the application."); return(ReturnResult(VostokApplicationState.CrashedDuringInitialization, error)); } }
public void Should_succeed_if_all_requirements_are_met() => RequirementsChecker.Check(application, environment);