private void finalizeCodeActivity_Finalize_ExecuteCode(object sender, EventArgs e) { DataTypeDescriptor dataTypeDescriptor = GetDataTypeDescriptor(); // Making changes to type DataTypeDescriptor newDataTypeDescriptor = dataTypeDescriptor.Clone(); newDataTypeDescriptor.AddSuperInterface(typeof(ILocalizedControlled)); List <CultureInfo> localesToCopyTo = new List <CultureInfo>(); if (ThereAreReferencesInLocalizedData()) { localesToCopyTo.AddRange(DataLocalizationFacade.ActiveLocalizationCultures); } else { string cultureName = this.GetBinding <string>("CultureName"); localesToCopyTo.Add(CultureInfo.CreateSpecificCulture(cultureName)); } var updateDataTypeDescriptor = new UpdateDataTypeDescriptor(dataTypeDescriptor, newDataTypeDescriptor, false) { LocalesToCopyTo = localesToCopyTo }; GeneratedTypesFacade.UpdateType(updateDataTypeDescriptor); this.CloseCurrentView(); this.CollapseAndRefresh(); }
/// <summary> /// This method will remove a foreign key (if any exists) that is no longer possible with the /// new meta data system (IPageMetaDataDefinition) /// </summary> /// <param name="dataTypeDescriptor"></param> /// <param name="dataStoreExists"></param> private void UpdateWithNewPageFolderForeignKeySystem(DataTypeDescriptor dataTypeDescriptor, bool dataStoreExists) { if (dataTypeDescriptor.IsPageFolderDataType == false) { return; } DataFieldDescriptor dataFieldDescriptor = dataTypeDescriptor.Fields["IAggregationDescriptionIdForeignKey"]; if (dataFieldDescriptor == null) { return; } Log.LogVerbose("GeneratedTypesFacade", string.Format("Removing the property {0} on the type {1}.{2}", dataFieldDescriptor.Name, dataTypeDescriptor.Namespace, dataTypeDescriptor.Name)); if (!dataStoreExists) { dataTypeDescriptor.Fields.Remove(dataFieldDescriptor); DynamicTypeManager.UpdateDataTypeDescriptor(dataTypeDescriptor, false); return; } DataTypeDescriptor oldDataTypeDescriptor = dataTypeDescriptor.Clone(); dataTypeDescriptor.Fields.Remove(dataFieldDescriptor); var dataTypeChangeDescriptor = new DataTypeChangeDescriptor(oldDataTypeDescriptor, dataTypeDescriptor); var updateDataTypeDescriptor = new UpdateDataTypeDescriptor(oldDataTypeDescriptor, dataTypeDescriptor); DynamicTypeManager.AlterStore(updateDataTypeDescriptor, false); }
private DataTypeDescriptor GetClone(DataTypeDescriptor dataTypeDescriptor) { DataTypeDescriptor clone; if (!_updates.TryGetValue(dataTypeDescriptor, out clone)) { clone = dataTypeDescriptor.Clone(); _updates.Add(dataTypeDescriptor, clone); } return(clone); }
private void finalizeCodeActivity_Finalize_ExecuteCode(object sender, EventArgs e) { DataTypeDescriptor dataTypeDescriptor = GetDataTypeDescriptor(); DataTypeDescriptor newDataTypeDescriptor = dataTypeDescriptor.Clone(); newDataTypeDescriptor.RemoveSuperInterface(typeof(ILocalizedControlled)); UpdateDataTypeDescriptor updateDataTypeDescriptor = new UpdateDataTypeDescriptor(dataTypeDescriptor, newDataTypeDescriptor, false); if (this.BindingExist("CultureName")) { string cultureName = this.GetBinding <string>("CultureName"); CultureInfo cultureInfo = CultureInfo.CreateSpecificCulture(cultureName); updateDataTypeDescriptor.LocaleToCopyFrom = cultureInfo; } GeneratedTypesFacade.UpdateType(updateDataTypeDescriptor); this.CloseCurrentView(); this.CollapseAndRefresh(); }