public async Task DoImportMicrosoftProjectAsync() { try { IsBusy = true; if (IsProjectUpdated) { var confirmation = new Confirmation() { Title = Properties.Resources.Title_UnsavedChanges, Content = Properties.Resources.Message_UnsavedChanges }; m_ConfirmationInteractionRequest.Raise(confirmation); if (!confirmation.Confirmed) { return; } } string directory = m_AppSettingService.ProjectPlanFolder; if (m_FileDialogService.ShowOpenDialog( directory, Properties.Resources.Filter_ImportMicrosoftProjectFileType, Properties.Resources.Filter_ImportMicrosoftProjectFileExtension) == DialogResult.OK) { string filename = m_FileDialogService.Filename; if (string.IsNullOrWhiteSpace(filename)) { DispatchNotification( Properties.Resources.Title_Error, Properties.Resources.Message_EmptyFilename); } else { MicrosoftProjectDto microsoftProjectDto = await ImportMicrosoftProjectAsync(filename); ProcessMicrosoftProject(microsoftProjectDto); HasStaleOutputs = true; IsProjectUpdated = true; ProjectTitle = Path.GetFileNameWithoutExtension(filename); await RunAutoCompileAsync(); m_AppSettingService.ProjectPlanFolder = Path.GetDirectoryName(filename); } } } catch (Exception ex) { DispatchNotification( Properties.Resources.Title_Error, ex.Message); } finally { IsBusy = false; RaiseCanExecuteChangedAllCommands(); } }