BudgetAnalyser.Uwp.ShellController.InitialiseAsync C# (CSharp) Метод

InitialiseAsync() публичный Метод

public InitialiseAsync ( ) : System.Threading.Tasks.Task
Результат System.Threading.Tasks.Task
        public async Task InitialiseAsync()
        {
            if (this.initialised) return;
            this.initialised = true;
            this.uiContext.Controllers.OfType<IInitialisableController>().ToList().ForEach(i => i.Initialise());

            IList<IPersistentApplicationStateObject> rehydratedModels = (await this.statePersistence.LoadAsync())?.ToList();
            if (rehydratedModels == null || rehydratedModels.None())
            {
                rehydratedModels = CreateNewDefaultApplicationState();
            }

            // Create a distinct list of sequences.
            IEnumerable<int> sequences = rehydratedModels.Select(persistentModel => persistentModel.LoadSequence).OrderBy(s => s).Distinct();

            // Send state load messages in order.
            foreach (int sequence in sequences)
            {
                int sequenceCopy = sequence;
                IEnumerable<IPersistentApplicationStateObject> models = rehydratedModels.Where(persistentModel => persistentModel.LoadSequence == sequenceCopy);
                MessengerInstance.Send(new ApplicationStateLoadedMessage(models));
            }

            MessengerInstance.Send(new ApplicationStateLoadFinishedMessage());
        }