public override async Task Run(Command command)
        {
            var dialog = new OpenFileDialog();

            dialog.SetupViaEditorFileType(PhxStudioProject.FileType);
            if (dialog.ShowDialog() != true)
            {
                return;
            }

            if (mProjectService.Engine != null)
            {
                mEventAggregator.PublishOnUIThread(new ProjectEngineUnloadedEventArgs());
            }

            mEventAggregator.PublishOnUIThread(new ProjectClosingEventArgs());

            var project_task = Task.Factory.StartNew(OpenProjectCallback, dialog.FileName,
                                                     CancellationToken.None,
                                                     TaskCreationOptions.None,
                                                     TaskScheduler.Default);
            var project_task_result = await project_task;

            if (project_task_result != null)
            {
                return;
            }

            mEventAggregator.PublishOnUIThread(new ProjectOpeningEventArgs());
        }