コード例 #1
0
        private void deleteCodeActivity_ExecuteCode(object sender, EventArgs e)
        {
            DeleteTreeRefresher treeRefresher = this.CreateDeleteTreeRefresher(this.EntityToken);
            DataEntityToken     token         = (DataEntityToken)this.EntityToken;

            using (TransactionScope transactionScope = TransactionsFacade.CreateNewScope())
            {
                IMediaFileFolder folder = DataFacade.GetDataFromDataSourceId(token.DataSourceId, false) as IMediaFileFolder;

                // Media folder may already be deleted at this point
                if (folder != null)
                {
                    if (!DataFacade.WillDeleteSucceed(folder))
                    {
                        this.ShowMessage(
                            DialogType.Error,
                            StringResourceSystemFacade.GetString("Composite.Management", "DeleteMediaFolderWorkflow.CascadeDeleteErrorTitle"),
                            StringResourceSystemFacade.GetString("Composite.Management", "DeleteMediaFolderWorkflow.CascadeDeleteErrorMessage")
                            );

                        return;
                    }

                    DataFacade.Delete(folder);
                }

                transactionScope.Complete();
            }

            treeRefresher.PostRefreshMesseges();
        }
コード例 #2
0
        private void finalizeCodeActivity_Finalize_ExecuteCode(object sender, EventArgs e)
        {
            IPageTypeDefaultPageContent defaultPageContent = this.GetBinding <IPageTypeDefaultPageContent>("DefaultPageContent");

            Dictionary <string, string> piggybag = PiggybagSerializer.Deserialize(this.ExtraPayload);

            DataEntityToken dataEntityToken = piggybag.GetParentEntityTokens().FindDataEntityToken(typeof(IPageType));
            IPageType       parentPageType  = (IPageType)dataEntityToken.Data;

            defaultPageContent.PageTypeId = parentPageType.Id;
            defaultPageContent.Content    = " ";

            defaultPageContent = DataFacade.AddNew <IPageTypeDefaultPageContent>(defaultPageContent);

            this.CloseCurrentView();
            this.RefreshCurrentEntityToken();

            if (!AnyTemplatesContainingPlaceholderId())
            {
                ShowMessage(C1Console.Events.DialogType.Message,
                            string.Format(RS.GetString("Composite.Plugins.PageTypeElementProvider", "PageType.AddPageTypeDefaultPageContentWorkflow.NonExistingPlaceholderId.Title"), defaultPageContent.PlaceHolderId),
                            string.Format(RS.GetString("Composite.Plugins.PageTypeElementProvider", "PageType.AddPageTypeDefaultPageContentWorkflow.NonExistingPlaceholderId.Message"), defaultPageContent.PlaceHolderId));
            }

            this.ExecuteWorklow(defaultPageContent.GetDataEntityToken(), WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PageTypeElementProvider.EditPageTypeDefaultPageContentWorkflow"));
        }
コード例 #3
0
        private void codeActivity1_ExecuteCode(object sender, EventArgs e)
        {
            DataEntityToken  token  = (DataEntityToken)this.EntityToken;
            IMediaFileFolder folder = (IMediaFileFolder)token.Data;

            string storeId    = folder.StoreId;
            string parentPath = folder.Path;

            StoreIdFilterQueryable <IMediaFileFolder> folderQueryable = new StoreIdFilterQueryable <IMediaFileFolder>(DataFacade.GetData <IMediaFileFolder>(), storeId);
            StoreIdFilterQueryable <IMediaFile>       fileQueryable   = new StoreIdFilterQueryable <IMediaFile>(DataFacade.GetData <IMediaFile>(), storeId);

            string innerElementsPathPrefix = string.Format("{0}/", parentPath);

            bool anyFiles =
                (from item in fileQueryable
                 where item.FolderPath.StartsWith(innerElementsPathPrefix) || item.FolderPath == parentPath
                 select item).Any();

            bool anyFolders =
                (from item in folderQueryable
                 where item.Path.StartsWith(innerElementsPathPrefix)
                 select item).Any();


            if ((anyFiles == false) && (anyFolders == false))
            {
                this.Bindings.Add("MessageText", StringResourceSystemFacade.GetString("Composite.Management", "Website.Forms.Administrative.DeleteMediaFolder.Text"));
            }
            else
            {
                this.Bindings.Add("MessageText", StringResourceSystemFacade.GetString("Composite.Management", "Website.Forms.Administrative.DeleteMediaFolder.HasChildringText"));
            }
        }
        private void finalizeCodeActivity_ExecuteCode(object sender, EventArgs e)
        {
            DataEntityToken token = (DataEntityToken)this.EntityToken;

            IMethodBasedFunctionInfo methodBasedFunctionInfo = (IMethodBasedFunctionInfo)token.Data;

            if (DataFacade.WillDeleteSucceed(methodBasedFunctionInfo))
            {
                DeleteTreeRefresher treeRefresher = this.CreateDeleteTreeRefresher(this.EntityToken);

                DataFacade.Delete(token.Data);

                int count =
                    (from info in DataFacade.GetData <IMethodBasedFunctionInfo>()
                     where info.Namespace == methodBasedFunctionInfo.Namespace
                     select info).Count();

                if (count == 0)
                {
                    RefreshFunctionTree();
                }
                else
                {
                    treeRefresher.PostRefreshMesseges();
                }
            }
            else
            {
                this.ShowMessage(
                    DialogType.Error,
                    StringResourceSystemFacade.GetString("Composite.Plugins.MethodBasedFunctionProviderElementProvider", "CascadeDeleteErrorTitle"),
                    StringResourceSystemFacade.GetString("Composite.Plugins.MethodBasedFunctionProviderElementProvider", "CascadeDeleteErrorMessage")
                    );
            }
        }
コード例 #5
0
        public IEnumerable <EntityToken> GetParents(EntityToken entityToken)
        {
            if (entityToken == null)
            {
                throw new ArgumentNullException("entityToken");
            }

            DataEntityToken dataEntityToken = entityToken as DataEntityToken;

            if (dataEntityToken == null)
            {
                throw new ArgumentException(string.Format("The type of the entityToken should be of type {0}", typeof(DataEntityToken)), "entityToken");
            }

            IData data = dataEntityToken.Data;

            if (data == null)
            {
                return(null);             // A piece of data may be deleted to this point
            }
            using (new DataScope(data.DataSourceId.DataScopeIdentifier, data.DataSourceId.LocaleScope))
            {
                IData parent = DataAncestorFacade.GetParent(dataEntityToken.Data);
                if (parent == null)
                {
                    return(null);
                }

                return(new List <EntityToken> {
                    parent.GetDataEntityToken()
                });
            }
        }
コード例 #6
0
        private void initializeAddNewfolderCodeActivity_ExecuteCode(object sender, EventArgs e)
        {
            FormsWorkflow workflow = this.GetRoot <FormsWorkflow>();
            string        parentFolderPath;
            string        storeId;

            if (this.EntityToken is MediaRootFolderProviderEntityToken)
            {
                MediaRootFolderProviderEntityToken token = (MediaRootFolderProviderEntityToken)this.EntityToken;
                storeId          = token.Id;
                parentFolderPath = "/";
            }
            else
            {
                DataEntityToken  token        = (DataEntityToken)this.EntityToken;
                IMediaFileFolder parentFolder = (IMediaFileFolder)token.Data;
                storeId          = parentFolder.StoreId;
                parentFolderPath = parentFolder.Path;
            }

            IMediaFileStore  store  = DataFacade.GetData <IMediaFileStore>(x => x.Id == storeId).First();
            IMediaFileFolder folder = DataFacade.BuildNew <IMediaFileFolder>();

            folder.Path = parentFolderPath;

            workflow.Bindings.Add("NewFolder", folder);
            workflow.Bindings.Add("FolderName", "");
            workflow.Bindings.Add("ProviderName", store.DataSourceId.ProviderName);
            workflow.Bindings.Add("ProvidesMetaData", false);

            workflow.BindingsValidationRules.Add("FolderName", new List <ClientValidationRule> {
                new NotNullClientValidationRule()
            });
        }
コード例 #7
0
        /// <exclude />
        public T GetDataItemFromEntityToken <T>()
            where T : IData
        {
            DataEntityToken dataEntityToken = (DataEntityToken)this.EntityToken;

            return((T)dataEntityToken.Data);
        }
コード例 #8
0
ファイル: PageElementProvider.cs プロジェクト: wwl2013/C1-CMS
        public Dictionary <EntityToken, IEnumerable <EntityToken> > GetParents(IEnumerable <EntityToken> entityTokens)
        {
            var result = new Dictionary <EntityToken, IEnumerable <EntityToken> >();

            foreach (EntityToken entityToken in entityTokens)
            {
                DataEntityToken dataEntityToken = entityToken as DataEntityToken;

                Type type = dataEntityToken.InterfaceType;
                if (type != typeof(IPage))
                {
                    continue;
                }

                Guid pageId       = (Guid)dataEntityToken.DataSourceId.GetKeyValue();
                Guid parentPageId = PageManager.GetParentId(pageId);

                if (parentPageId != Guid.Empty)
                {
                    continue;
                }

                result.Add(entityToken, new EntityToken[] { new PageElementProviderEntityToken(_context.ProviderName) });
            }

            return(result);
        }
コード例 #9
0
        public RenderingResponseHandlerResult GetDataResponseHandling(DataEntityToken requestedItemEntityToken)
        {
            foreach (string name in RenderingResponseHandlerRegistry.RenderingResponseHandlerNames)
            {
                if (!RenderingResponseHandlerPluginFacade.IsDataRenderingResponseHandler(name))
                {
                    continue;
                }

                var result = RenderingResponseHandlerPluginFacade.GetDataResponseHandling(name, requestedItemEntityToken);

                if (result != null && result.IsNotEmpty)
                {
                    return(result);
                }
            }

            foreach (var responseHandler in ServiceLocator.GetServices <IDataRenderingResponseHandler>())
            {
                var result = responseHandler.GetDataResponseHandling(requestedItemEntityToken);

                if (result != null && result.IsNotEmpty)
                {
                    return(result);
                }
            }

            return(null);
        }
コード例 #10
0
ファイル: DeleteUserWorkflow.cs プロジェクト: wwl2013/C1-CMS
        private void finalizeCodeActivity_ExecuteCode(object sender, EventArgs e)
        {
            DeleteTreeRefresher deleteTreeRefresher = this.CreateDeleteTreeRefresher(this.EntityToken);

            DataEntityToken dataEntityToken = (DataEntityToken)this.EntityToken;

            IUser user = (IUser)dataEntityToken.Data;

            if (DataFacade.WillDeleteSucceed(user))
            {
                UserPerspectiveFacade.DeleteAll(user.Username);

                DataFacade.Delete(user);

                LoggingService.LogVerbose("UserManagement", String.Format("C1 Console user '{0}' deleted by '{1}'.", user.Username, UserValidationFacade.GetUsername()), LoggingService.Category.Audit);

                deleteTreeRefresher.PostRefreshMesseges();
            }
            else
            {
                this.ShowMessage(
                    DialogType.Error,
                    StringResourceSystemFacade.GetString("Composite.Management", "DeleteUserWorkflow.CascadeDeleteErrorTitle"),
                    StringResourceSystemFacade.GetString("Composite.Management", "DeleteUserWorkflow.CascadeDeleteErrorMessage")
                    );
            }
        }
コード例 #11
0
        private void initializeCodeActivity_ExecuteCode(object sender, EventArgs e)
        {
            DataEntityToken token    = (DataEntityToken)this.EntityToken;
            IVisualFunction function = (IVisualFunction)token.Data;

            this.Bindings.Add("OriginalFullName", string.Format("{0}.{1}", function.Namespace, function.Name));
            this.Bindings.Add("Function", function);
            this.Bindings.Add("XhtmlBody", function.XhtmlTemplate);

            Type interfaceType = TypeManager.GetType(function.TypeManagerName);
            DataTypeDescriptor typeDescriptor = DynamicTypeManager.GetDataTypeDescriptor(interfaceType);

            this.Bindings.Add("EmbedableFieldsTypes", new List <Type> {
                interfaceType
            });
            this.Bindings.Add("SourceTypeFullName", interfaceType.FullName);

            this.Bindings.Add("FieldNameList", FieldNames(typeDescriptor).ToList());

            Dictionary <Guid, string> templateInfos = new Dictionary <Guid, string>();

            foreach (PageTemplateDescriptor pageTemplate in PageTemplateFacade.GetPageTemplates())
            {
                if (pageTemplate.PlaceholderDescriptions.Any())
                {
                    templateInfos.Add(pageTemplate.Id, pageTemplate.Title);
                }
            }

            this.Bindings.Add("PreviewTemplateId", templateInfos.First().Key);
            this.Bindings.Add("TemplateList", templateInfos);
        }
コード例 #12
0
        private void InitializeCodeActivity_ExecuteCode(object sender, EventArgs e)
        {
            FormsWorkflow workflow = this.GetRoot <FormsWorkflow>();

            string parentFolderPath;
            string storeId;

            if (this.EntityToken is MediaRootFolderProviderEntityToken)
            {
                MediaRootFolderProviderEntityToken token = (MediaRootFolderProviderEntityToken)this.EntityToken;
                parentFolderPath = "/";
                storeId          = token.Id;
            }
            else
            {
                DataEntityToken  token        = (DataEntityToken)this.EntityToken;
                IMediaFileFolder parentFolder = (IMediaFileFolder)token.Data;
                parentFolderPath = parentFolder.Path;
                storeId          = parentFolder.StoreId;
            }

            string providerName = DataFacade.GetData <IMediaFileStore>().Where(x => x.Id == storeId).First().DataSourceId.ProviderName;

            UploadedFile file = new UploadedFile();

            workflow.Bindings.Add("UploadedFile", file);
            workflow.Bindings.Add("RecreateFolders", true);
            workflow.Bindings.Add("OverwriteExisting", false);
            workflow.Bindings.Add("ParentFolderPath", parentFolderPath);
            workflow.Bindings.Add("ProviderName", providerName);
        }
コード例 #13
0
        private void initializeCodeActivity_UpdateBindings_ExecuteCode(object sender, EventArgs e)
        {
            IPageTypeMetaDataTypeLink pageTypeMetaDataTypeLink = DataFacade.BuildNew<IPageTypeMetaDataTypeLink>();
            pageTypeMetaDataTypeLink.Id = Guid.NewGuid();

            Dictionary<string, string> piggybag = PiggybagSerializer.Deserialize(this.ExtraPayload);

            DataEntityToken dataEntityToken = piggybag.GetParentEntityTokens().FindDataEntityToken(typeof(IPageType));
            IPageType parentPageType = (IPageType)dataEntityToken.Data;

            pageTypeMetaDataTypeLink.PageTypeId = parentPageType.Id;

            this.Bindings.Add("CompositionDescriptionName", "");
            this.Bindings.Add("CompositionDescriptionLabel", "");

            this.Bindings.Add("NewMetaDataTypeLink", pageTypeMetaDataTypeLink);

            List<KeyValuePair<Guid, string>> metaDataTypeOptions =
                PageMetaDataFacade.GetAllMetaDataTypes().
                ToList(f => new KeyValuePair<Guid, string>(f.GetImmutableTypeId(), f.GetTypeTitle()));

            this.Bindings.Add("MetaDataTypeOptions", metaDataTypeOptions);

            List<KeyValuePair<Guid, string>> metaDataContainerOptions = PageMetaDataFacade.GetAllMetaDataContainers();

            this.Bindings.Add("MetaDataContainerOptions", metaDataContainerOptions);
            this.Bindings.Add("CompositionContainerId", metaDataContainerOptions.First().Key);

            this.BindingsValidationRules.Add("CompositionDescriptionName", new List<ClientValidationRule> { new NotNullClientValidationRule(), new StringLengthClientValidationRule(1, 128) });
            this.BindingsValidationRules.Add("CompositionDescriptionLabel", new List<ClientValidationRule> { new NotNullClientValidationRule(), new StringLengthClientValidationRule(1, 256) });
        }
コード例 #14
0
        private void finalizeCodeActivity_ExecuteCode(object sender, EventArgs e)
        {
            DeleteTreeRefresher deleteTreeRefresher = this.CreateDeleteTreeRefresher(this.EntityToken);

            DataEntityToken dataEntityToken = (DataEntityToken)this.EntityToken;

            IVisualFunction visualFunction = (IVisualFunction)dataEntityToken.Data;

            DataFacade.Delete <IVisualFunction>(visualFunction);

            int count =
                (from info in DataFacade.GetData <IVisualFunction>()
                 where info.Namespace == visualFunction.Namespace
                 select info).Count();


            if (count == 0)
            {
                RefreshFunctionTree();
            }
            else
            {
                deleteTreeRefresher.PostRefreshMesseges();
            }
        }
コード例 #15
0
        private void initializeCodeActivity_ExecuteCode(object sender, EventArgs e)
        {
            DataEntityToken dataEntityToken = (DataEntityToken)this.EntityToken;

            this.Bindings.Add("CurrentMethodFunctionInfo", dataEntityToken.Data);
            this.Bindings.Add("ErrorMessage", null);
        }
        public Dictionary <EntityToken, IEnumerable <EntityToken> > GetParents(
            IEnumerable <EntityToken> entityTokens)
        {
            Dictionary <EntityToken, IEnumerable <EntityToken> > result =
                new Dictionary <EntityToken, IEnumerable <EntityToken> >();

            foreach (EntityToken entityToken in entityTokens)
            {
                DataEntityToken dataEntityToken = entityToken as DataEntityToken;
                if (dataEntityToken.Data == null)
                {
                    continue;
                }
                Type interfaceType = TypeManager.GetType(dataEntityToken.Type);
                if (interfaceType != typeof(IPage))
                {
                    continue;
                }
                IPage page = dataEntityToken.Data as IPage;
                if (page.PublicationStatus == "awaitingApproval")
                {
                    result.Add(entityToken, new MyEntityToken[] { new MyEntityToken("Approval") });
                }
                else if (page.PublicationStatus == "awaitingPublication")
                {
                    result.Add(entityToken, new MyEntityToken[] { new MyEntityToken("Publication") });
                }
            }
            return(result);
        }
コード例 #17
0
        /// <exclude />
        protected override IEnumerable <Element> OnGetElements(EntityToken parentEntityToken, TreeNodeDynamicContext dynamicContext)
        {
            Type   referenceType  = null;
            object referenceValue = null;

            if (this.ChildGeneratingParentIdFilterNode != null)
            {
                if (this.IsTopFolderParent)
                {
                    DataEntityToken dataEntityToken = (DataEntityToken)dynamicContext.Piggybag
                                                      .GetParentEntityTokens(parentEntityToken)
                                                      .FirstOrDefault(f => f is DataEntityToken && ((DataEntityToken)f).InterfaceType == ChildGeneratingParentIdFilterNode.ParentFilterType);

                    if (dataEntityToken != null)
                    {
                        referenceType  = this.ChildGeneratingParentIdFilterNode.KeyPropertyInfo.DeclaringType;
                        referenceValue = this.ChildGeneratingParentIdFilterNode.KeyPropertyInfo.GetValue(dataEntityToken.Data, null);
                    }
                }
                else
                {
                    var treeDataFieldGroupingElementEntityToken = parentEntityToken as TreeDataFieldGroupingElementEntityToken;

                    referenceType  = treeDataFieldGroupingElementEntityToken.ChildGeneratingDataElementsReferenceType;
                    referenceValue = treeDataFieldGroupingElementEntityToken.ChildGeneratingDataElementsReferenceValue;
                }
            }


            if (this.FolderRanges != null)
            {
                return(CreateFolderRangeElements(parentEntityToken, referenceType, referenceValue, dynamicContext));
            }

            IEnumerable <object> objects;

            if (!this.LocalizationEnabled)
            {
                objects = GetObjects(dynamicContext);
            }
            else
            {
                List <object> orgObjects = GetObjects(dynamicContext);
                using (new DataScope(UserSettings.ForeignLocaleCultureInfo))
                {
                    List <object> foreignObjects = GetObjects(dynamicContext);
                    orgObjects.AddRange(foreignObjects);
                    orgObjects.Sort(); // TODO: Check if sorting here is necessary
                    objects = orgObjects.Distinct();
                }
            }

            if (this.FirstLetterOnly)
            {
                return(CreateFirstLetterOnlyElements(parentEntityToken, referenceType, referenceValue, dynamicContext, objects));
            }

            return(CreateSimpleElements(parentEntityToken, referenceType, referenceValue, dynamicContext, objects));
        }
コード例 #18
0
        private void HasUsers(object sender, ConditionalEventArgs e)
        {
            DataEntityToken dataEntityToken = (DataEntityToken)this.EntityToken;

            IUserGroup userGroup = (IUserGroup)dataEntityToken.Data;

            e.Result = DataFacade.GetData <IUserUserGroupRelation>(f => f.UserGroupId == userGroup.Id).Any();
        }
コード例 #19
0
        private void IsSameUser(object sender, System.Workflow.Activities.ConditionalEventArgs e)
        {
            DataEntityToken dataEntityToken = (DataEntityToken)this.EntityToken;

            IUser user = (IUser)dataEntityToken.Data;

            e.Result = user.Username == UserSettings.Username;
        }
コード例 #20
0
ファイル: DeleteUserWorkflow.cs プロジェクト: wwl2013/C1-CMS
        private void initializeCodeActivity_Initialize_ExecuteCode(object sender, EventArgs e)
        {
            DataEntityToken dataEntityToken = (DataEntityToken)this.EntityToken;

            IUser user = (IUser)dataEntityToken.Data;

            _deleteSelf = user.Username == UserValidationFacade.GetUsername();
        }
コード例 #21
0
        private void initializeCodeActivity_Initialize_ExecuteCode(object sender, EventArgs e)
        {
            DataEntityToken dataEntityToken = (DataEntityToken)this.EntityToken;

            ISystemActiveLocale systemActiveLocale = (ISystemActiveLocale)dataEntityToken.Data;

            this.Bindings.Add("SystemActiveLocale", systemActiveLocale);
        }
コード例 #22
0
        private void PageHasMultpleVersions(object sender, ConditionalEventArgs e)
        {
            DataEntityToken dataEntityToken = (DataEntityToken)this.EntityToken;
            IPage           selectedPage    = (IPage)dataEntityToken.Data;

            Guid pageId = selectedPage.Id;

            e.Result = DataFacade.GetData <IPage>().Count(p => p.Id == pageId) > 1;
        }
コード例 #23
0
        private void initalizeCodeActivity_Initialize_ExecuteCode(object sender, EventArgs e)
        {
            DataEntityToken dataEntityToken = (DataEntityToken)this.EntityToken;

            IUserGroup userGroup = (IUserGroup)dataEntityToken.Data;

            this.Bindings.Add("UserGroup", userGroup);
            this.Bindings.Add("OldName", userGroup.Name);
        }
コード例 #24
0
        /// <exclude />
        public override IEnumerable <EntityToken> GetEntityTokens(EntityToken childEntityToken, TreeNodeDynamicContext dynamicContext)
        {
            IEnumerable <object> labels = GetCurrentAndLocalizableObjects <object>(dynamicContext, true);

            Type   childGeneratingDataElementsReferenceType  = null;
            object childGeneratingDataElementsReferenceValue = null;

            DataEntityToken dataEntityToken = childEntityToken as DataEntityToken;
            var             treeDataFieldGroupingElementEntityToken = childEntityToken as TreeDataFieldGroupingElementEntityToken;

            if (dataEntityToken != null)
            {
                if (this.ChildGeneratingParentIdFilterNode != null)
                {
                    childGeneratingDataElementsReferenceType  = this.ChildGeneratingParentIdFilterNode.ParentFilterType;
                    childGeneratingDataElementsReferenceValue = this.ChildGeneratingParentIdFilterNode.ReferencePropertyInfo.GetValue(dataEntityToken.Data, null);
                }
            }
            else if (treeDataFieldGroupingElementEntityToken != null)
            {
                childGeneratingDataElementsReferenceType  = treeDataFieldGroupingElementEntityToken.ChildGeneratingDataElementsReferenceType;
                childGeneratingDataElementsReferenceValue = treeDataFieldGroupingElementEntityToken.ChildGeneratingDataElementsReferenceValue;
            }


            foreach (object label in labels)
            {
                var tupleIndexer = new TupleIndexer(label);

                var entityToken = new TreeDataFieldGroupingElementEntityToken(this.Id, this.Tree.TreeId, TypeManager.SerializeType(this.InterfaceType))
                {
                    GroupingValues = new Dictionary <string, object>()
                };

                int index = 1;
                foreach (DataFolderElementsTreeNode dataFolderElementsTreeNode in this.AllGroupingNodes)
                {
                    if (dataFolderElementsTreeNode.FolderRanges == null)
                    {
                        object fieldValue = tupleIndexer.GetAtIndex(index++);
                        fieldValue = ConvertFieldValue(dataFolderElementsTreeNode, fieldValue);
                        entityToken.GroupingValues.Add(dataFolderElementsTreeNode.GroupingValuesFieldName, fieldValue);
                    }
                    else
                    {
                        int fieldValue = (int)tupleIndexer.GetAtIndex(index++);
                        entityToken.FolderRangeValues.Add(dataFolderElementsTreeNode.FieldName, fieldValue);
                    }
                }

                entityToken.ChildGeneratingDataElementsReferenceType  = childGeneratingDataElementsReferenceType;
                entityToken.ChildGeneratingDataElementsReferenceValue = childGeneratingDataElementsReferenceValue;

                yield return(entityToken);
            }
        }
コード例 #25
0
        private void step1CodeActivity_Delete_ExecuteCode(object sender, EventArgs e)
        {
            DataEntityToken dataEntityToken = (DataEntityToken)this.EntityToken;

            DataFacade.Delete(dataEntityToken.Data);

            SpecificTreeRefresher specificTreeRefresher = this.CreateSpecificTreeRefresher();

            specificTreeRefresher.PostRefreshMesseges(new PackageElementProviderRootEntityToken());
        }
コード例 #26
0
        private CultureInfo CreateCultureInfo()
        {
            DataEntityToken dataEntityToken = (DataEntityToken)this.EntityToken;

            ISystemActiveLocale systemActiveLocale = (ISystemActiveLocale)dataEntityToken.Data;

            CultureInfo cultureInfo = CultureInfo.CreateSpecificCulture(systemActiveLocale.CultureName);

            return(cultureInfo);
        }
コード例 #27
0
        private void initializeCodeActivity_ExecuteCode(object sender, EventArgs e)
        {
            DataEntityToken token = (DataEntityToken)this.EntityToken;
            IMediaFile      file  = (IMediaFile)token.Data;

            this.Bindings.Add("FileName", file.FileName);
            this.Bindings.Add("FileMimeType", file.MimeType);

            SetSaveStatus(true);
        }
コード例 #28
0
        private void initialStateCodeActivity_ExecuteCode(object sender, EventArgs e)
        {
            DataEntityToken dataEntityToken = (DataEntityToken)this.EntityToken;

            ISqlConnection connection = (ISqlConnection)dataEntityToken.Data;

            string decryptedConnectionString = connection.EncryptedConnectionString.Decrypt();

            this.Bindings.Add("ConnectionString", decryptedConnectionString);
            this.Bindings.Add("SqlConnection", connection);
        }
コード例 #29
0
        /// <exclude />
        public override AncestorResult GetParentEntityToken(EntityToken ownEntityToken, Type parentInterfaceOfInterest, TreeNodeDynamicContext dynamicContext)
        {
            if (this.ParentFilteringHelpers == null)
            {
                throw new InvalidOperationException(string.Format("Failed to find parent, are you missing a parent filter for the type '{0}'", this.InterfaceType));
            }

            ParentFilterHelper helper;

            if (this.ParentFilteringHelpers.TryGetValue(parentInterfaceOfInterest, out helper) == false)
            {
                // We cant find the interface of interest directly, so we will give 'some' parent entity token
                // by using 'one' of our own parent id filters

                helper = this.ParentFilteringHelpers.First().Value;
            }

            DataEntityToken dataEntityToken = (DataEntityToken)ownEntityToken;
            IData           data            = dataEntityToken.Data;

            Verify.ArgumentCondition(data != null, "ownEntityToken", "Failed to get data");

            object parentFieldValue = helper.ParentReferencedPropertyInfo.GetValue(data, null);

            ParameterExpression parameterExpression = Expression.Parameter(helper.ParentIdFilterNode.ParentFilterType, "data");

            Expression expression = Expression.Equal(
                ExpressionHelper.CreatePropertyExpression(helper.ParentRefereePropertyName, parameterExpression),
                Expression.Constant(parentFieldValue, helper.ParentReferencedPropertyInfo.PropertyType)
                );

            Expression whereExpression = ExpressionHelper.CreateWhereExpression(
                DataFacade.GetData(helper.ParentIdFilterNode.ParentFilterType).Expression,
                parameterExpression, expression
                );

            IData parentDataItem = ExpressionHelper.GetCastedObjects <IData>(helper.ParentIdFilterNode.ParentFilterType, whereExpression)
                                   .FirstOrDefault();

            Verify.IsNotNull(parentDataItem, "Failed to get parent data item. Check if there's a broken parent reference.");

            DataEntityToken parentEntityToken = parentDataItem.GetDataEntityToken();

            TreeNode parentTreeNode       = this.ParentNode;
            var      dataElementsTreeNode = parentTreeNode as DataElementsTreeNode;

            while (dataElementsTreeNode == null ||
                   dataElementsTreeNode.InterfaceType != parentEntityToken.InterfaceType)
            {
                parentTreeNode = parentTreeNode.ParentNode;
            }

            return(new AncestorResult(parentTreeNode, parentEntityToken));
        }
コード例 #30
0
        private DataEntityToken TryGetDataEntityToken(Type interfaceType)
        {
            DataEntityToken dataEntityToken = _currentEntityToken as DataEntityToken;

            if ((dataEntityToken == null) || (dataEntityToken.InterfaceType != interfaceType))
            {
                dataEntityToken = this.ParentEntityTokens.FindDataEntityToken(interfaceType);
            }

            return(dataEntityToken);
        }