private async Task PerformExportEntityDescriptionAsync(string folder, Guid idCustomControl, string name) { var service = await GetService(); ToggleControls(service.ConnectionData, false, Properties.WindowStatusStrings.CreatingEntityDescription); try { string fileName = EntityFileNameFormatter.GetCustomControlFileName(service.ConnectionData.Name, name, EntityFileNameFormatter.Headers.EntityDescription, "txt"); string filePath = Path.Combine(folder, FileOperations.RemoveWrongSymbols(fileName)); var repository = new CustomControlRepository(service); var customControl = await repository.GetByIdAsync(idCustomControl, new ColumnSet(true)); await EntityDescriptionHandler.ExportEntityDescriptionAsync(filePath, customControl, EntityFileNameFormatter.CustomControlIgnoreFields, service.ConnectionData); this._iWriteToOutput.WriteToOutput(service.ConnectionData, Properties.OutputStrings.ExportedEntityDescriptionForConnectionFormat3 , service.ConnectionData.Name , customControl.LogicalName , filePath); this._iWriteToOutput.PerformAction(service.ConnectionData, filePath); ToggleControls(service.ConnectionData, true, Properties.WindowStatusStrings.CreatingEntityDescriptionCompleted); } catch (Exception ex) { _iWriteToOutput.WriteErrorToOutput(service.ConnectionData, ex); ToggleControls(service.ConnectionData, true, Properties.WindowStatusStrings.CreatingEntityDescriptionFailed); } }
private async Task PerformExportXmlToFileAsync(string folder, Guid idCustomControl, string name, string fieldName, string fieldTitle, FileExtension extension) { if (!this.IsControlsEnabled) { return; } var service = await GetService(); if (service == null) { return; } ToggleControls(service.ConnectionData, false, Properties.OutputStrings.ExportingXmlFieldToFileFormat1, fieldTitle); try { var repository = new CustomControlRepository(service); var customControl = await repository.GetByIdAsync(idCustomControl, new ColumnSet(fieldName)); string xmlContent = customControl.GetAttributeValue <string>(fieldName); if (!string.IsNullOrEmpty(xmlContent)) { if (string.Equals(fieldName, CustomControl.Schema.Attributes.manifest, StringComparison.InvariantCultureIgnoreCase)) { xmlContent = ContentComparerHelper.FormatXmlByConfiguration( xmlContent , _commonConfig , XmlOptionsControls.CustomControlXmlOptions , schemaName: AbstractDynamicCommandXsdSchemas.ManifestSchema , customControlId: idCustomControl ); } else if (string.Equals(fieldName, CustomControl.Schema.Attributes.clientjson, StringComparison.InvariantCultureIgnoreCase)) { xmlContent = ContentComparerHelper.FormatJson(xmlContent); } } string filePath = await CreateFileAsync(folder, idCustomControl, name, fieldTitle, extension, xmlContent); this._iWriteToOutput.PerformAction(service.ConnectionData, filePath); ToggleControls(service.ConnectionData, true, Properties.OutputStrings.ExportingXmlFieldToFileCompletedFormat1, fieldName); } catch (Exception ex) { _iWriteToOutput.WriteErrorToOutput(service.ConnectionData, ex); ToggleControls(service.ConnectionData, true, Properties.OutputStrings.ExportingXmlFieldToFileFailedFormat1, fieldName); } }
private async Task ShowExistingCustomControls() { if (!this.IsControlsEnabled) { return; } var service = await GetService(); ToggleControls(service.ConnectionData, false, Properties.WindowStatusStrings.LoadingForms); this._itemsSource.Clear(); IEnumerable <CustomControl> list = Enumerable.Empty <CustomControl>(); string textName = string.Empty; txtBFilter.Dispatcher.Invoke(() => { textName = txtBFilter.Text.Trim().ToLower(); }); try { if (service != null) { var repository = new CustomControlRepository(service); list = await repository.GetListAsync(textName , new ColumnSet ( CustomControl.Schema.Attributes.customcontrolid , CustomControl.Schema.Attributes.name , CustomControl.Schema.Attributes.compatibledatatypes , CustomControl.Schema.Attributes.ismanaged ) ); } } catch (Exception ex) { this._iWriteToOutput.WriteErrorToOutput(service.ConnectionData, ex); } LoadCustomControls(list); ToggleControls(service.ConnectionData, true, Properties.WindowStatusStrings.LoadingFormsCompletedFormat1, list.Count()); }
private async Task PerformUpdateEntityField(string folder, Guid idCustomControl, string name, string fieldName, string fieldTitle, FileExtension extension) { if (!this.IsControlsEnabled) { return; } var service = await GetService(); if (service == null) { return; } ToggleControls(service.ConnectionData, false, Properties.OutputStrings.InConnectionUpdatingFieldFormat2, service.ConnectionData.Name, fieldName); try { var repository = new CustomControlRepository(service); var customControl = await repository.GetByIdAsync(idCustomControl, new ColumnSet(fieldName)); string xmlContent = customControl.GetAttributeValue <string>(fieldName); if (string.Equals(fieldName, CustomControl.Schema.Attributes.manifest, StringComparison.InvariantCultureIgnoreCase)) { if (ContentComparerHelper.TryParseXml(xmlContent, out var tempDoc)) { xmlContent = tempDoc.ToString(); } } else if (string.Equals(fieldName, CustomControl.Schema.Attributes.clientjson, StringComparison.InvariantCultureIgnoreCase)) { xmlContent = ContentComparerHelper.FormatJson(xmlContent); } { string backUpXmlContent = xmlContent; if (string.Equals(fieldName, CustomControl.Schema.Attributes.manifest, StringComparison.InvariantCultureIgnoreCase)) { backUpXmlContent = ContentComparerHelper.FormatXmlByConfiguration( backUpXmlContent , _commonConfig , XmlOptionsControls.CustomControlXmlOptions , schemaName: AbstractDynamicCommandXsdSchemas.ManifestSchema , customControlId: idCustomControl ); } else if (string.Equals(fieldName, CustomControl.Schema.Attributes.clientjson, StringComparison.InvariantCultureIgnoreCase)) { backUpXmlContent = ContentComparerHelper.FormatJson(backUpXmlContent); } await CreateFileAsync(folder, idCustomControl, name, fieldTitle + " BackUp", extension, backUpXmlContent); } var newText = string.Empty; bool?dialogResult = false; this.Dispatcher.Invoke(() => { var form = new WindowTextField("Enter " + fieldTitle, fieldTitle, xmlContent); dialogResult = form.ShowDialog(); newText = form.FieldText; }); if (dialogResult.GetValueOrDefault() == false) { ToggleControls(service.ConnectionData, true, Properties.OutputStrings.InConnectionUpdatingFieldCanceledFormat2, service.ConnectionData.Name, fieldName); return; } newText = ContentComparerHelper.RemoveInTextAllCustomXmlAttributesAndNamespaces(newText); UpdateStatus(service.ConnectionData, Properties.OutputStrings.ValidatingXmlForFieldFormat1, fieldName); if (!ContentComparerHelper.TryParseXmlDocument(newText, out var doc)) { ToggleControls(service.ConnectionData, true, Properties.OutputStrings.TextIsNotValidXml); _iWriteToOutput.ActivateOutputWindow(service.ConnectionData); return; } newText = doc.ToString(SaveOptions.DisableFormatting); var updateEntity = new CustomControl { Id = idCustomControl }; updateEntity.Attributes[fieldName] = newText; await service.UpdateAsync(updateEntity); ToggleControls(service.ConnectionData, true, Properties.OutputStrings.InConnectionUpdatingFieldCompletedFormat2, service.ConnectionData.Name, fieldName); } catch (Exception ex) { _iWriteToOutput.WriteErrorToOutput(service.ConnectionData, ex); ToggleControls(service.ConnectionData, true, Properties.OutputStrings.InConnectionUpdatingFieldFailedFormat2, service.ConnectionData.Name, fieldName); } }
private async Task ShowExistingCustomControls() { if (!this.IsControlsEnabled) { return; } var connectionData = GetSelectedConnection(); ToggleControls(connectionData, false, Properties.OutputStrings.LoadingCustomControls); string textName = string.Empty; this.Dispatcher.Invoke(() => { this._itemsSource.Clear(); textName = txtBFilter.Text.Trim().ToLower(); }); IEnumerable <CustomControl> list = Enumerable.Empty <CustomControl>(); try { var service = await GetService(); if (service != null) { var repository = new CustomControlRepository(service); list = await repository.GetListAsync(textName , new ColumnSet ( CustomControl.Schema.Attributes.customcontrolid , CustomControl.Schema.Attributes.name , CustomControl.Schema.Attributes.compatibledatatypes , CustomControl.Schema.Attributes.ismanaged ) ); } } catch (Exception ex) { this._iWriteToOutput.WriteErrorToOutput(connectionData, ex); } this.lstVwCustomControls.Dispatcher.Invoke(() => { foreach (var entity in list .OrderBy(ent => ent.Name) .ThenBy(ent => ent.CompatibleDataTypes) ) { var item = new EntityViewItem(entity); this._itemsSource.Add(item); } if (this.lstVwCustomControls.Items.Count == 1) { this.lstVwCustomControls.SelectedItem = this.lstVwCustomControls.Items[0]; } }); ToggleControls(connectionData, true, Properties.OutputStrings.LoadingCustomControlsCompletedFormat1, list.Count()); }