private void NotifyOfStart() {
            const string Message = "Initializing project list";
            var startDescriptor = new StartupEventDescriptor {
                Message = Message,
                Activity = StartupActivity.PROJECTS_INIT
            };

            eventAggregator.GetEvent<StartupEventBegin>().Publish(startDescriptor);
        }
        private void OnComponentEnd(StartupEventDescriptor descriptor)
        {
            var activity = runningActivities.FirstOrDefault(act => act.Activity == descriptor.Activity);

            if (activity != null) {
                RunningOperations.Remove(activity.Message);
                runningActivities.Remove(activity);
                Progress += percentPerOperation;

                if (!runningActivities.Any()) {
                    eventAggregator.GetEvent<BootingCompleted>().Publish(true);
                }
            }
        }
        private void NotifyOfEnd(Task task) {
            var endDescriptor = new StartupEventDescriptor {
                Activity = StartupActivity.PROJECTS_INIT
            };

            task.ContinueWith((result) => {
                Application.Current.Dispatcher.Invoke(() => {
                    eventAggregator.GetEvent<StartupEventEnd>().Publish(endDescriptor);
                });
            });
        }
 private void OnComponentStart(StartupEventDescriptor descriptor)
 {
     runningActivities.Add(descriptor);
     RunningOperations.Add(descriptor.Message);
 }