예제 #1
0
        private void OnDynamicListBaseChanged()
        {
            CleanTemplateContextByValue(Constants.DynamicListBase);

            foreach (var entity in DynamicListBaseEntities)
            {
                string key = String.Format(Constants.ListFormat, entity.EntityKeyName);

                if (ContextData.Get(key) != null)
                {
                    ContextData.Remove(key);
                }

                DynamicRootListEntities.Remove(entity);
                EditableRootListEntities.Remove(entity);
                EditableChildListEntities.Remove(entity);

                ContextData.Add(key, Constants.DynamicListBase);

                if (State == TemplateState.RestoringProperties)
                {
                    continue;
                }

                AddChildEntity(entity, false, false);
            }
        }
예제 #2
0
        private void AddChildList(IEntity entity, bool readOnly, bool child)
        {
            if (Configuration.Instance.ExcludeRegexIsMatch(entity.EntityKey()))
            {
                return;
            }

            if (readOnly)
            {
                if (ReadOnlyListEntities.Count > 0 && ReadOnlyListEntities.Contains(entity))
                {
                    return;
                }
                if (ReadOnlyChildListEntities.Count > 0 && ReadOnlyChildListEntities.Contains(entity))
                {
                    return;
                }

                if (child)
                {
                    ReadOnlyChildListEntities.Add(entity);
                }
                else
                {
                    ReadOnlyListEntities.Add(entity);
                }
            }
            else
            {
                if (DynamicRootListEntities.Count > 0 && DynamicRootListEntities.Contains(entity))
                {
                    return;
                }
                if (EditableRootListEntities.Count > 0 && EditableRootListEntities.Contains(entity))
                {
                    return;
                }
                if (EditableChildListEntities.Count > 0 && EditableChildListEntities.Contains(entity))
                {
                    return;
                }
                if (child)
                {
                    EditableChildListEntities.Add(entity);
                }
                else
                {
                    EditableRootListEntities.Add(entity);
                }
            }
        }
예제 #3
0
        public void PopulateDefaultEntities(List <IEntity> entities)
        {
            //EditableRoot
            foreach (var entity in GetRootEntities(entities))
            {
                if (!EditableRootEntities.Contains(entity))
                {
                    EditableRootEntities.Add(entity);
                }
            }

            //EditableChild
            foreach (var entity in GetChildEntities(entities).Values.Where(e => e is TableEntity || e.ExtendedProperties.ContainsKey(Constants.EditableChild)))
            {
                if (!EditableChildEntities.Contains(entity))
                {
                    EditableChildEntities.Add(entity);
                }
            }

            //EditableChild
            foreach (var entity in GetExcludedEntities(entities).Where(e => e is TableEntity || e.ExtendedProperties.ContainsKey(Constants.EditableChild)))
            {
                if (!EditableChildEntities.Contains(entity))
                {
                    EditableChildEntities.Add(entity);
                }
            }

            //EditableChildList
            foreach (var entity in GetListEntities(entities).Values)
            {
                if (!EditableChildListEntities.Contains(entity))
                {
                    EditableChildListEntities.Add(entity);
                }
            }
        }