private void ProcessMicrosoftProject(MicrosoftProjectDto microsoftProjectDto) { if (microsoftProjectDto == null) { throw new ArgumentNullException(nameof(microsoftProjectDto)); } lock (m_Lock) { ResetProject(); // Project Start Date. ProjectStartWithoutPublishing = microsoftProjectDto.ProjectStart; // Resources. foreach (ResourceDto resourceDto in microsoftProjectDto.Resources) { ResourceSettingsDto.Resources.Add(resourceDto); } //SetTargetResources(); // Activities. foreach (DependentActivityDto dependentActivityDto in microsoftProjectDto.DependentActivities) { m_CoreViewModel.AddManagedActivity(DtoConverter.FromDto(dependentActivityDto)); } } }
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(); } }