private async Task CopingToClipboardSystemFormCurrentTabsAndSections(IOrganizationServiceExtented service, CommonConfiguration commonConfig, JavaScriptObjectType jsObjectType, string entityName, Guid formId, int formType) { var repositorySystemForm = new SystemFormRepository(service); var systemForm = await repositorySystemForm.GetByIdAsync(formId, ColumnSetInstances.AllColumns); string formXml = systemForm.FormXml; if (string.IsNullOrEmpty(formXml)) { this._iWriteToOutput.WriteToOutput(service.ConnectionData, Properties.OutputStrings.InConnectionEntityFieldIsEmptyFormat4, service.ConnectionData.Name, SystemForm.Schema.EntityLogicalName, systemForm.Name, SystemForm.Schema.Headers.formxml); this._iWriteToOutput.ActivateOutputWindow(service.ConnectionData); return; } try { var fileGenerationOptions = FileGenerationConfiguration.GetFileGenerationOptions(); var config = new CreateFileJavaScriptConfiguration(fileGenerationOptions); var doc = XElement.Parse(formXml); var descriptor = new SolutionComponentDescriptor(service); descriptor.SetSettings(commonConfig); var handler = new FormDescriptionHandler(descriptor, new DependencyRepository(service)); FormInformation formInfo = handler.GetFormInformation(doc); var stringBuilder = new StringBuilder(); using (var writer = new StringWriter(stringBuilder)) { var handlerCreate = new CreateFormTabsJavaScriptHandler(writer, config, jsObjectType, service); handlerCreate.WriteContentOnlyForm(formInfo); } ClipboardHelper.SetText(stringBuilder.ToString().Trim(' ', '\r', '\n')); this._iWriteToOutput.WriteToOutput(service.ConnectionData, Properties.OutputStrings.CopyingEntityJavaScriptContentOnFormCompletedFormat2, systemForm.ObjectTypeCode, systemForm.Name); this._iWriteToOutput.ActivateOutputWindow(service.ConnectionData); service.TryDispose(); } catch (Exception ex) { this._iWriteToOutput.WriteErrorToOutput(service.ConnectionData, ex); } }
private async Task GetCurrentFormDescription(IOrganizationServiceExtented service, CommonConfiguration commonConfig, SystemForm systemForm) { string formXml = systemForm.FormXml; if (string.IsNullOrEmpty(formXml)) { this._iWriteToOutput.WriteToOutput(service.ConnectionData, Properties.OutputStrings.InConnectionEntityFieldIsEmptyFormat4, service.ConnectionData.Name, SystemForm.Schema.EntityLogicalName, systemForm.Name, SystemForm.Schema.Headers.formxml); this._iWriteToOutput.ActivateOutputWindow(service.ConnectionData); return; } commonConfig.CheckFolderForExportExists(this._iWriteToOutput); var descriptor = new SolutionComponentDescriptor(service); descriptor.SetSettings(commonConfig); var handler = new FormDescriptionHandler(descriptor, new DependencyRepository(service)); string fileName = EntityFileNameFormatter.GetSystemFormFileName(service.ConnectionData.Name, systemForm.ObjectTypeCode, systemForm.Name, "FormDescription", FileExtension.txt); string filePath = Path.Combine(commonConfig.FolderForExport, FileOperations.RemoveWrongSymbols(fileName)); try { XElement doc = XElement.Parse(formXml); string desc = await handler.GetFormDescriptionAsync(doc, systemForm.ObjectTypeCode, systemForm.Id, systemForm.Name, systemForm.FormattedValues[SystemForm.Schema.Attributes.type]); File.WriteAllText(filePath, desc, new UTF8Encoding(false)); this._iWriteToOutput.WriteToOutput(service.ConnectionData, Properties.OutputStrings.InConnectionEntityFieldExportedToFormat5, service.ConnectionData.Name, SystemForm.Schema.EntityLogicalName, systemForm.Name, "FormDescription", filePath); this._iWriteToOutput.PerformAction(service.ConnectionData, filePath); service.TryDispose(); } catch (Exception ex) { this._iWriteToOutput.WriteErrorToOutput(service.ConnectionData, ex); } }
private async void ClearUnmanagedSolution_Click(object sender, RoutedEventArgs e) { var solution = GetSelectedEntity(); if (solution == null) { return; } string question = string.Format(Properties.MessageBoxStrings.ClearSolutionFormat1, solution.UniqueName); if (MessageBox.Show(question, Properties.MessageBoxStrings.QuestionTitle, MessageBoxButton.OKCancel, MessageBoxImage.Question) != MessageBoxResult.OK) { return; } try { ToggleControls(false, Properties.WindowStatusStrings.ClearingSolutionFormat2, _service.ConnectionData.Name, solution.UniqueName); var commonConfig = CommonConfiguration.Get(); var descriptor = new SolutionComponentDescriptor(_service); descriptor.SetSettings(commonConfig); SolutionDescriptor solutionDescriptor = new SolutionDescriptor(_iWriteToOutput, _service, descriptor); this._iWriteToOutput.WriteToOutput(_service.ConnectionData, string.Empty); this._iWriteToOutput.WriteToOutput(_service.ConnectionData, "Creating backup Solution Components in '{0}'.", solution.UniqueName); { string fileName = EntityFileNameFormatter.GetSolutionFileName( _service.ConnectionData.Name , solution.UniqueName , "Components Backup" ); string filePath = Path.Combine(commonConfig.FolderForExport, FileOperations.RemoveWrongSymbols(fileName)); await solutionDescriptor.CreateFileWithSolutionComponentsAsync(filePath, solution.Id); this._iWriteToOutput.WriteToOutput(_service.ConnectionData, "Created backup Solution Components in '{0}': {1}", solution.UniqueName, filePath); this._iWriteToOutput.WriteToOutputFilePathUri(_service.ConnectionData, filePath); } { string fileName = EntityFileNameFormatter.GetSolutionFileName( _service.ConnectionData.Name , solution.UniqueName , "SolutionImage Backup before Clearing" , "xml" ); string filePath = Path.Combine(commonConfig.FolderForExport, FileOperations.RemoveWrongSymbols(fileName)); SolutionImage solutionImage = await solutionDescriptor.CreateSolutionImageAsync(solution.Id, solution.UniqueName); await solutionImage.SaveAsync(filePath); } SolutionComponentRepository repository = new SolutionComponentRepository(_service); await repository.ClearSolutionAsync(solution.UniqueName); ToggleControls(true, Properties.WindowStatusStrings.ClearingSolutionCompletedFormat2, _service.ConnectionData.Name, solution.UniqueName); } catch (Exception ex) { this._iWriteToOutput.WriteErrorToOutput(_service.ConnectionData, ex); ToggleControls(true, Properties.WindowStatusStrings.ClearingSolutionFailedFormat2, _service.ConnectionData.Name, solution.UniqueName); } }