BindingsToObject() публичный Метод

public BindingsToObject ( object>.Dictionary bindings, IData dataObject ) : string>.Dictionary
bindings object>.Dictionary
dataObject IData
Результат string>.Dictionary
Пример #1
0
        private void finalizeCodeActivity_Finalize_ExecuteCode(object sender, EventArgs e)
        {
            Type selectedMetaDataType = this.GetBinding<Type>(SelectedTypeBindingName);
            DataTypeDescriptor dataTypeDescriptor = DynamicTypeManager.GetDataTypeDescriptor(selectedMetaDataType.GetImmutableTypeId());

            PageMetaDataDescription dataAssociationVisabilityRule = this.GetBinding<PageMetaDataDescription>(DataAssociationVisabilityDescriptionBindingName);
            Guid metaDataContainerId = this.GetBinding<Guid>(SelectedContainerBindingName);
            string metaDataDefinitionName = this.GetBinding<string>(FieldGroupNameBindingName);
            string metaDataDefinitionLabel = this.GetBinding<string>(FieldGroupLabelBindingName);

            IData newDataTemplate = null;
            if (IsAnyPagesAffected())
            {
                DataTypeDescriptorFormsHelper helper = new DataTypeDescriptorFormsHelper(dataTypeDescriptor);

                GeneratedTypesHelper generatedTypesHelper = new GeneratedTypesHelper(dataTypeDescriptor);
                helper.AddReadOnlyFields(generatedTypesHelper.NotEditableDataFieldDescriptorNames);

                newDataTemplate = DataFacade.BuildNew(selectedMetaDataType);
                helper.BindingsToObject(this.Bindings, newDataTemplate);
            }
            

            using (TransactionScope transactionScope = TransactionsFacade.CreateNewScope())
            {
                IPage page = GetCurrentPage();

                page.AddMetaDataDefinition(metaDataDefinitionName, metaDataDefinitionLabel, selectedMetaDataType.GetImmutableTypeId(), metaDataContainerId, dataAssociationVisabilityRule.StartLevel, dataAssociationVisabilityRule.Levels);

                if (newDataTemplate != null)
                {
                    page.AddNewMetaDataToExistingPages(metaDataDefinitionName, newDataTemplate);
                }

                transactionScope.Complete();
            }

            ParentTreeRefresher parentTreeRefresher = this.CreateParentTreeRefresher();
            parentTreeRefresher.PostRefreshMesseges(this.EntityToken);
        }
Пример #2
0
        private void finalizeCodeActivity_Finalize_ExecuteCode(object sender, EventArgs e)
        {
            using (TransactionScope transactionScope = TransactionsFacade.CreateNewScope())
            {
                List<Guid> oldPageIds = GetOldAffectedPageIds();
                List<Guid> newPageIds = GetNewAffectedPageIds();

                Pair<string, Type> metaDataPair = this.GetBinding<Pair<string, Type>>("SelectedMetaDataDefinition");
                Guid newMetaDataContainerId = this.GetBinding<Guid>("SelectedMetaDataContainer");                
                string newLabel = this.GetBinding<string>("Label");
                int startLevel = this.GetBinding<int>("SelectedStartDisplay");
                int levels = this.GetBinding<int>("SelectedInheritDisplay");

                PageMetaDataFacade.UpdateDefinition(GetCurrentPageId(), metaDataPair.First, newLabel, startLevel, levels, newMetaDataContainerId);                

                IEnumerable<Guid> oldPageIdsToRemove = oldPageIds.Except(newPageIds);
                foreach (Guid id in oldPageIdsToRemove)
                {
                    IPage page = Composite.Data.PageManager.GetPageById(id);
                    
                    bool otherDefinitionExists = page.GetAllowedMetaDataDefinitions().Where(f => f.Name == metaDataPair.First).Any();

                    if (otherDefinitionExists) continue;
                                        
                    using (new DataScope(DataScopeIdentifier.Public))
                    {
                        IData dataToDelete = page.GetMetaData(metaDataPair.First, metaDataPair.Second);
                        if (dataToDelete != null)
                        {
                            DataFacade.Delete(dataToDelete);
                        }
                    }

                    using (new DataScope(DataScopeIdentifier.Administrated))
                    {
                        IData dataToDelete = page.GetMetaData(metaDataPair.First, metaDataPair.Second);
                        if (dataToDelete != null)
                        {
                            DataFacade.Delete(dataToDelete);
                        }
                    }
                }


                IData newDataTemplate = null;
                if (this.BindingExist("NewDataTemplate"))
                {
                    newDataTemplate = this.GetBinding<IData>("NewDataTemplate");

                    DataTypeDescriptor dataTypeDescriptor = DynamicTypeManager.GetDataTypeDescriptor(metaDataPair.Second.GetImmutableTypeId());
                    DataTypeDescriptorFormsHelper helper = new DataTypeDescriptorFormsHelper(dataTypeDescriptor);
                    helper.BindingsToObject(this.Bindings, newDataTemplate);
                }


                IEnumerable<Guid> newPageIdsToAdd = newPageIds.Except(oldPageIds);
                foreach (Guid id in newPageIdsToAdd)
                {
                    IPage page = Composite.Data.PageManager.GetPageById(id);

                    page.AddNewMetaDataToExistingPage(metaDataPair.First, metaDataPair.Second, newDataTemplate);
                }

                transactionScope.Complete();
            }
        }