private void initializeCodeActivity_ExecuteCode(object sender, EventArgs e) { DataTypeDescriptor dataTypeDescriptor = GetDataTypeDescriptor(); string formMarkup; XDocument formMarkupDocument = DynamicTypesCustomFormFacade.GetCustomFormMarkup(dataTypeDescriptor); if (formMarkupDocument != null) { formMarkup = formMarkupDocument.ToString(); } else { bool isMetaDataType = dataTypeDescriptor.SuperInterfaces.Contains(typeof(IPageMetaData)); var formsHelper = new DataTypeDescriptorFormsHelper(dataTypeDescriptor, null, !isMetaDataType, null); var generatedTypesHelper = new GeneratedTypesHelper(dataTypeDescriptor); formsHelper.AddReadOnlyFields(generatedTypesHelper.NotEditableDataFieldDescriptorNames); formMarkup = formsHelper.GetForm(); } this.Bindings.Add("Title", string.Format("{0}.{1} XML", dataTypeDescriptor.Namespace, dataTypeDescriptor.Name)); this.Bindings.Add("FileContent", formMarkup); }
private void saveTypeCodeActivity_Save_ExecuteCode(object sender, EventArgs e) { try { Type oldType = GetOldTypeFromBindings(); string typeName = this.GetBinding <string>("TypeName"); string typeNamespace = this.GetBinding <string>("TypeNamespace"); string typeTitle = this.GetBinding <string>("TypeTitle"); bool hasCaching = this.GetBinding <bool>("HasCaching"); bool hasPublishing = this.GetBinding <bool>("HasPublishing"); string labelFieldName = this.GetBinding <string>("LabelFieldName"); var dataFieldDescriptors = this.GetBinding <List <DataFieldDescriptor> >("DataFieldDescriptors"); var helper = new GeneratedTypesHelper(oldType); string errorMessage; if (!helper.ValidateNewTypeName(typeName, out errorMessage)) { this.ShowFieldMessage("NewTypeName", errorMessage); return; } if (!helper.ValidateNewTypeNamespace(typeNamespace, out errorMessage)) { this.ShowFieldMessage("NewTypeNamespace", errorMessage); return; } if (!helper.ValidateNewTypeFullName(typeName, typeNamespace, out errorMessage)) { this.ShowFieldMessage("NewTypeName", errorMessage); return; } if (!helper.ValidateNewFieldDescriptors(dataFieldDescriptors, null, out errorMessage)) { this.ShowMessage( DialogType.Warning, Texts.EditCompositionTypeWorkflow_ErrorTitle, errorMessage ); return; } helper.SetNewTypeFullName(typeName, typeNamespace); helper.SetNewTypeTitle(typeTitle); // TODO: fix helper.SetNewFieldDescriptors(dataFieldDescriptors, null, labelFieldName); helper.SetCacheable(hasCaching); if (helper.IsEditProcessControlledAllowed) { helper.SetPublishControlled(hasPublishing); } bool originalTypeDataExists = DataFacade.HasDataInAnyScope(oldType); if (!helper.TryValidateUpdate(originalTypeDataExists, out errorMessage)) { this.ShowMessage( DialogType.Warning, Texts.EditCompositionTypeWorkflow_ErrorTitle, errorMessage ); return; } helper.CreateType(originalTypeDataExists); UpdateBinding("OldTypeName", typeName); UpdateBinding("OldTypeNamespace", typeNamespace); SetSaveStatus(true); var rootEntityToken = new GeneratedDataTypesElementProviderRootEntityToken(this.EntityToken.Source, GeneratedDataTypesElementProviderRootEntityToken.PageMetaDataTypeFolderId); SpecificTreeRefresher specificTreeRefresher = this.CreateSpecificTreeRefresher(); specificTreeRefresher.PostRefreshMesseges(rootEntityToken); IFile markupFile = DynamicTypesCustomFormFacade.GetCustomFormMarkupFile(typeNamespace, typeName); if (markupFile != null) { ShowMessage(DialogType.Message, Texts.FormMarkupInfo_Dialog_Label, Texts.FormMarkupInfo_Message(Texts.EditFormMarkup, markupFile.GetRelativeFilePath())); } } catch (Exception ex) { Log.LogCritical("EditCompositionTypeWorkflow", ex); this.ShowMessage(DialogType.Error, ex.Message, ex.Message); } }