private void ValidateNewDefinition(object sender, ConditionalEventArgs e) { Pair <string, Type> metaDataPair = this.GetBinding <Pair <string, Type> >("SelectedMetaDataDefinition"); IPageMetaDataDefinition pageMetaDataDefinition = PageMetaDataFacade.GetMetaDataDefinition(GetCurrentPageId(), metaDataPair.First); e.Result = true; string newLabel = this.GetBinding <string>("Label"); Guid newMetaDataContainerId = this.GetBinding <Guid>("SelectedMetaDataContainer"); Guid pageId = GetCurrentPageId(); if (pageMetaDataDefinition.Label != newLabel) { if (PageMetaDataFacade.IsDefinitionAllowed(pageId, pageMetaDataDefinition.Name, newLabel, pageMetaDataDefinition.MetaDataTypeId) == false) { e.Result = false; ShowFieldMessage("Label", StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.EditMetaDataWorkflow.MetaDataFieldNameAlreadyUsed")); } } if (pageMetaDataDefinition.MetaDataContainerId != newMetaDataContainerId) { if (PageMetaDataFacade.IsNewContainerIdAllowed(pageId, pageMetaDataDefinition.Name, newMetaDataContainerId) == false) { e.Result = false; ShowFieldMessage("SelectedMetaDataContainer", StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.EditMetaDataWorkflow.MetaDataContainerChangeNotAllowed")); } } }
private void ValidateBindings(object sender, ConditionalEventArgs e) { IPageTypeMetaDataTypeLink pageTypeMetaDataTypeLink = this.GetDataItemFromEntityToken <IPageTypeMetaDataTypeLink>(); IPageMetaDataDefinition pageMetaDataDefinition = PageMetaDataFacade.GetMetaDataDefinition(pageTypeMetaDataTypeLink.PageTypeId, pageTypeMetaDataTypeLink.Name); string metaDataDescriptionLabel = this.GetBinding <string>("CompositionDescriptionLabel"); Guid containerId = this.GetBinding <Guid>("CompositionContainerId"); e.Result = true; if (pageMetaDataDefinition.Label != metaDataDescriptionLabel) { if (PageMetaDataFacade.IsDefinitionAllowed(pageTypeMetaDataTypeLink.PageTypeId, pageMetaDataDefinition.Name, metaDataDescriptionLabel, pageMetaDataDefinition.MetaDataTypeId) == false) { this.ShowFieldMessage("CompositionDescriptionLabel", GetText("PageType.EditPageTypeMetaDataFieldWorkflow.ValidationError.MetaDataFieldNameAlreadyUsed")); SetSaveStatus(false); e.Result = false; } } if (pageMetaDataDefinition.MetaDataContainerId != containerId) { if (PageMetaDataFacade.IsNewContainerIdAllowed(pageTypeMetaDataTypeLink.PageTypeId, pageMetaDataDefinition.Name, containerId) == false) { this.ShowFieldMessage("CompositionContainerId", GetText("PageType.EditPageTypeMetaDataFieldWorkflow.ValidationError.MetaDataContainerChangeNotAllowed")); SetSaveStatus(false); e.Result = false; } } }
private List <Guid> GetOldAffectedPageIds() { Pair <string, Type> metaDataPair = this.GetBinding <Pair <string, Type> >("SelectedMetaDataDefinition"); IPageMetaDataDefinition pageMetaDataDefinition = PageMetaDataFacade.GetMetaDataDefinition(GetCurrentPageId(), metaDataPair.First); IPage page = GetCurrentPage(); return(page.GetMetaDataAffectedPages(pageMetaDataDefinition.StartLevel, pageMetaDataDefinition.Levels).Select(f => f.Id).ToList()); }
private void editDefinitionCodeActivity_UpdateBindings_ExecuteCode(object sender, EventArgs e) { Pair <string, Type> metaDataPair = this.GetBinding <Pair <string, Type> >("SelectedMetaDataDefinition"); IPageMetaDataDefinition pageMetaDataDefinition = PageMetaDataFacade.GetMetaDataDefinition(GetCurrentPageId(), metaDataPair.First); this.UpdateBinding("Label", pageMetaDataDefinition.Label); List <KeyValuePair <Guid, string> > containers = PageMetaDataFacade.GetAllMetaDataContainers(); this.UpdateBinding("MetaDataContainerOptions", containers); this.UpdateBinding("SelectedMetaDataContainer", pageMetaDataDefinition.MetaDataContainerId); IPage page = GetCurrentPage(); Dictionary <int, string> startDisplayOptions = new Dictionary <int, string>(); if (page != null) { startDisplayOptions.Add(0, StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.AddMetaDataWorkflow.StartDisplayOption0")); } startDisplayOptions.Add(1, StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.AddMetaDataWorkflow.StartDisplayOption1")); startDisplayOptions.Add(2, StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.AddMetaDataWorkflow.StartDisplayOption2")); startDisplayOptions.Add(3, StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.AddMetaDataWorkflow.StartDisplayOption3")); startDisplayOptions.Add(4, StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.AddMetaDataWorkflow.StartDisplayOption4")); startDisplayOptions.Add(5, StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.AddMetaDataWorkflow.StartDisplayOption5")); this.UpdateBinding("StartDisplayOptions", startDisplayOptions); this.UpdateBinding("SelectedStartDisplay", pageMetaDataDefinition.StartLevel); int levels = pageMetaDataDefinition.Levels; if (levels > 10) { levels = 10000; } Dictionary <int, string> inheritDisplayOptions = new Dictionary <int, string>(); inheritDisplayOptions.Add(0, StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.AddMetaDataWorkflow.InheritDisplayOption0")); inheritDisplayOptions.Add(1, StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.AddMetaDataWorkflow.InheritDisplayOption1")); inheritDisplayOptions.Add(2, StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.AddMetaDataWorkflow.InheritDisplayOption2")); inheritDisplayOptions.Add(3, StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.AddMetaDataWorkflow.InheritDisplayOption3")); inheritDisplayOptions.Add(10000, StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.AddMetaDataWorkflow.InheritDisplayOption4")); this.UpdateBinding("InheritDisplayOptions", inheritDisplayOptions); this.UpdateBinding("SelectedInheritDisplay", levels); }
private void initializeCodeActivity_UpdateBindings_ExecuteCode(object sender, EventArgs e) { IPageTypeMetaDataTypeLink pageTypeMetaDataTypeLink = this.GetDataItemFromEntityToken <IPageTypeMetaDataTypeLink>(); IPageMetaDataDefinition pageMetaDataDefinition = PageMetaDataFacade.GetMetaDataDefinition(pageTypeMetaDataTypeLink.PageTypeId, pageTypeMetaDataTypeLink.Name); //this.UpdateBinding("CompositionDescriptionName", compositionDescription.Name); this.UpdateBinding("CompositionDescriptionLabel", pageMetaDataDefinition.Label); List <KeyValuePair <Guid, string> > metaDataContainerOptions = PageMetaDataFacade.GetAllMetaDataContainers(); this.Bindings.Add("MetaDataContainerOptions", metaDataContainerOptions); this.Bindings.Add("CompositionContainerId", pageMetaDataDefinition.MetaDataContainerId); var dataTypeDescriptor = DynamicTypeManager.GetDataTypeDescriptor(pageTypeMetaDataTypeLink.DataTypeId); this.Bindings.Add("MetaTypeName", dataTypeDescriptor.TypeManagerTypeName); }
internal void CopyPageData(IPage sourcePage, IPage newPage) { Guid sourcePageId = sourcePage.Id; Guid newPageId = newPage.Id; Guid sourceVersionId = sourcePage.VersionId; Guid newVersionId = newPage.VersionId; var newPlaceholders = new List <IPagePlaceholderContent>(); var placeholders = DataFacade.GetData <IPagePlaceholderContent>(false) .Where(ph => ph.PageId == sourcePageId && ph.VersionId == sourceVersionId) .ToList(); foreach (var placeholderContent in placeholders) { var newPlaceholder = DataFacade.BuildNew <IPagePlaceholderContent>(); newPlaceholder.PageId = newPageId; newPlaceholder.PlaceHolderId = placeholderContent.PlaceHolderId; newPlaceholder.Content = placeholderContent.Content; newPlaceholder.VersionId = newVersionId; newPlaceholders.Add(newPlaceholder); } DataFacade.AddNew <IPagePlaceholderContent>(newPlaceholders); var sourceMetaData = sourcePage.GetMetaData().Cast <IPageMetaData>() .Where(d => d.VersionId == sourceVersionId); foreach (var metaDataItem in sourceMetaData) { var metaDataType = metaDataItem.DataSourceId.InterfaceType; var typeDescriptor = DataMetaDataFacade.GetDataTypeDescriptor(metaDataType.GetImmutableTypeId()); var definition = PageMetaDataFacade.GetMetaDataDefinition(sourcePageId, metaDataItem.GetTypeTitle()); var newDataItem = (IPageMetaData)DataFacade.BuildNew(metaDataType); var properties = metaDataType.GetPropertiesRecursively().ToDictionary(p => p.Name); foreach (var field in typeDescriptor.Fields) { var propertyInfo = properties[field.Name]; propertyInfo.SetValue(newDataItem, propertyInfo.GetValue(metaDataItem)); } newDataItem.VersionId = newVersionId; newDataItem.Id = Guid.NewGuid(); newDataItem.PageId = newPageId; newDataItem.PublicationStatus = GenericPublishProcessController.Draft; newDataItem = (IPageMetaData)DataFacade.AddNew((IData)newDataItem); if (definition != null) { string title = newDataItem.GetTypeTitle(); newPage.AddMetaDataDefinition(title, title, newDataItem.GetImmutableTypeId(), definition.MetaDataContainerId); } } List <string> selectableTreeIds = TreeFacade.AllTrees.Where( tree => tree.HasAttachmentPoints(sourcePage.GetDataEntityToken())) .Where(tree => !tree.HasAttachmentPoints(newPage.GetDataEntityToken())) .Select(tree => tree.TreeId).ToList(); foreach (var selectableTreeId in selectableTreeIds) { TreeFacade.AddPersistedAttachmentPoint(selectableTreeId, newPage.DataSourceId.InterfaceType, newPage.DataSourceId.GetKeyValue()); } foreach (var dataFolderType in sourcePage.GetDefinedFolderTypes()) { newPage.AddFolderDefinition(dataFolderType); } }