コード例 #1
0
        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;
                }
            }
        }
コード例 #3
0
        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());
        }
コード例 #4
0
        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);
        }
コード例 #6
0
        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);
            }
        }