Catrobat.IDE.WindowsPhone.ExtendedSplash.RestoreStateAsync C# (CSharp) Method

RestoreStateAsync() private method

private RestoreStateAsync ( ApplicationExecutionState executionState ) : void
executionState ApplicationExecutionState
return void
        async void RestoreStateAsync(ApplicationExecutionState executionState)
        {
            DateTime beforLoading = DateTime.UtcNow;
            await Task.Delay(100);

            await RestoreCatrobatStateAsync(executionState);

            if (executionState == ApplicationExecutionState.Terminated)
            {
                await SuspensionManager.RestoreAsync();
            }

            var loadingDuration = DateTime.UtcNow.Subtract(beforLoading);
            var timeToWait = MinimalLoadingTime.Subtract(loadingDuration);

            if (timeToWait > new TimeSpan())
                await Task.Delay(timeToWait);


            Window.Current.Content = _rootFrame;
            ServiceLocator.NavigationService = new NavigationServiceWindowsShared(_rootFrame);

            if (_activationArguments.Kind == ActivationKind.Protocol)
            {
                ServiceLocator.NavigationService.NavigateTo<UploadProgramNewPasswordViewModel>();
            }
            else
            {
                ServiceLocator.NavigationService.NavigateTo<MainViewModel>();
            }
        }