private async Task CreateCSharpFile(IEnumerable <OptionSetMetadata> optionSets) { if (optionSets == null || !optionSets.Any()) { return; } if (!this.IsControlsEnabled) { return; } string folder = txtBFolder.Text.Trim(); if (string.IsNullOrEmpty(folder)) { _iWriteToOutput.WriteToOutput(null, Properties.OutputStrings.FolderForExportIsEmpty); folder = FileOperations.GetDefaultFolderForExportFilePath(); } else if (!Directory.Exists(folder)) { _iWriteToOutput.WriteToOutput(null, Properties.OutputStrings.FolderForExportDoesNotExistsFormat1, folder); folder = FileOperations.GetDefaultFolderForExportFilePath(); } var service = await GetService(); string optionSetsName = string.Join(",", optionSets.Select(o => o.Name).OrderBy(s => s)); this._iWriteToOutput.WriteToOutputStartOperation(service.ConnectionData, Properties.OperationNames.CreatingFileWithGlobalOptionSetsFormat1, optionSetsName); ToggleControls(service.ConnectionData, false, Properties.WindowStatusStrings.CreatingFileForOptionSetsFormat1, optionSetsName); try { string fileName = CreateGlobalOptionSetsFileCSharpHandler.CreateFileNameCSharp(service.ConnectionData, optionSets, this._selectedItem != null); string filePath = Path.Combine(folder, fileName); if (!_isJavaScript && !string.IsNullOrEmpty(_filePath)) { filePath = _filePath; } var config = CreateFileCSharpConfiguration.CreateForSchemaGlobalOptionSet(service.ConnectionData.NamespaceClassesCSharp, service.ConnectionData.NamespaceOptionSetsCSharp, service.ConnectionData.TypeConverterName, _commonConfig); using (var writer = new StreamWriter(filePath, false, new UTF8Encoding(false))) { var handler = new CreateGlobalOptionSetsFileCSharpHandler(writer, service, _iWriteToOutput, config); await handler.CreateFileAsync(optionSets); } if (this._selectedItem != null) { if (_selectedItem.ProjectItem != null) { _selectedItem.ProjectItem.ProjectItems.AddFromFileCopy(filePath); _selectedItem.ProjectItem.ContainingProject.Save(); } else if (_selectedItem.Project != null) { _selectedItem.Project.ProjectItems.AddFromFile(filePath); _selectedItem.Project.Save(); } } this._iWriteToOutput.WriteToOutput(service.ConnectionData, Properties.OutputStrings.CreatedGlobalOptionSetMetadataFileForConnectionFormat3, service.ConnectionData.Name, optionSetsName, filePath); this._iWriteToOutput.PerformAction(service.ConnectionData, filePath); ToggleControls(service.ConnectionData, true, Properties.WindowStatusStrings.CreatingFileForOptionSetsCompletedFormat1, optionSetsName); } catch (Exception ex) { _iWriteToOutput.WriteErrorToOutput(service.ConnectionData, ex); ToggleControls(service.ConnectionData, true, Properties.WindowStatusStrings.CreatingFileForOptionSetsFailedFormat1, optionSetsName); } this._iWriteToOutput.WriteToOutputEndOperation(service.ConnectionData, Properties.OperationNames.CreatingFileWithGlobalOptionSetsFormat1, optionSetsName); }
private string CreateFileNameCSharp(IEnumerable <OptionSetMetadata> optionSets, ConnectionData connection) { string fileName = CreateGlobalOptionSetsFileCSharpHandler.CreateFileNameCSharp(connection, optionSets, false); return(Path.Combine(_commonConfig.FolderForExport, fileName)); }
private async Task CreateCSharpFile(IEnumerable <OptionSetMetadata> optionSets) { if (optionSets == null || !optionSets.Any()) { return; } if (!this.IsControlsEnabled) { return; } var service = await GetService(); if (service == null) { return; } string folder = txtBFolder.Text.Trim(); folder = CorrectFolderIfEmptyOrNotExists(_iWriteToOutput, folder); string optionSetsName = string.Join(",", optionSets.Select(o => o.Name).OrderBy(s => s)); this._iWriteToOutput.WriteToOutputStartOperation(service.ConnectionData, Properties.OperationNames.CreatingFileWithGlobalOptionSetsFormat1, optionSetsName); ToggleControls(service.ConnectionData, false, Properties.OutputStrings.CreatingFileForOptionSetsFormat1, optionSetsName); try { string fileName = CreateGlobalOptionSetsFileCSharpHandler.CreateFileNameCSharp(service.ConnectionData, optionSets, this._selectedItem != null); string filePath = Path.Combine(folder, fileName); if (!_isJavaScript && !string.IsNullOrEmpty(_filePath)) { filePath = _filePath; } var fileGenerationOptions = FileGenerationConfiguration.GetFileGenerationOptions(); var config = CreateFileCSharpConfiguration.CreateForSchemaGlobalOptionSet(fileGenerationOptions); var stringBuilder = new StringBuilder(); using (var stringWriter = new StringWriter(stringBuilder)) { var descriptor = new SolutionComponentDescriptor(service); var handler = new CreateGlobalOptionSetsFileCSharpHandler(stringWriter, service, descriptor, config); await handler.CreateFileAsync(optionSets); } File.WriteAllText(filePath, stringBuilder.ToString(), new UTF8Encoding(false)); AddFileToVSProject(_selectedItem, filePath); this._iWriteToOutput.WriteToOutput(service.ConnectionData, Properties.OutputStrings.InConnectionCreatedGlobalOptionSetMetadataFileFormat3, service.ConnectionData.Name, optionSetsName, filePath); this._iWriteToOutput.PerformAction(service.ConnectionData, filePath); ToggleControls(service.ConnectionData, true, Properties.OutputStrings.CreatingFileForOptionSetsCompletedFormat1, optionSetsName); } catch (Exception ex) { _iWriteToOutput.WriteErrorToOutput(service.ConnectionData, ex); ToggleControls(service.ConnectionData, true, Properties.OutputStrings.CreatingFileForOptionSetsFailedFormat1, optionSetsName); } this._iWriteToOutput.WriteToOutputEndOperation(service.ConnectionData, Properties.OperationNames.CreatingFileWithGlobalOptionSetsFormat1, optionSetsName); }