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); } }
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); } } }
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); } } }