private static void FillBaseRulePart(BaseRulePart source, BaseRulePart dest, RuleInstance ruleInstance, Dictionary <object, object> convertingContext) { dest.Parent = ruleInstance; dest.IsActive = source.IsActive; dest.Expression = ConvertLogicalQueryNode(source.Expression, convertingContext); FillAnnotationsModalitiesAndSections(source, dest, convertingContext); }
public static string BaseRulePartToString(BaseRulePart baseRulePart) { var b = baseRulePart as PrimaryRulePart; if (b != null) { return(ToString(b)); } var c = baseRulePart as SecondaryRulePart; if (c != null) { return(ToString(c)); } return(string.Empty); }
private void NRemoveIndexedRulePartFromKeysOfRelationsIndex(IDictionary <StrongIdentifierValue, IList <BaseRulePart> > indexData, BaseRulePart indexedRulePart) { #if DEBUG //var dbgStr = DebugHelperForRuleInstance.BaseRulePartToString(indexedRulePart.OriginRulePart); //Log($"dbgStr = {dbgStr}"); #endif var relationsList = indexedRulePart.RelationsDict.SelectMany(p => p.Value).Distinct().ToList(); #if DEBUG //Log($"relationsList = {relationsList.WriteListToString()}"); #endif foreach (var relation in relationsList) { if (RelationsList.Contains(relation)) { RelationsList.Remove(relation); } } var keysOfRelationsList = indexedRulePart.RelationsDict.Keys.ToList(); #if DEBUG //Log($" = {relationsList.WriteListToString()}"); #endif foreach (var keyOfRelation in keysOfRelationsList) { #if DEBUG //Log($"keyOfRelation = {keyOfRelation}"); //Log($"_entityDictionary.GetName(keyOfRelation) = {_entityDictionary.GetName(keyOfRelation)}"); #endif if (indexData.ContainsKey(keyOfRelation)) { var tmpList = indexData[keyOfRelation]; if (tmpList.Contains(indexedRulePart)) { tmpList.Remove(indexedRulePart); } } } }
private void NAddIndexedRulePartToKeysOfRelationsIndex(IDictionary <StrongIdentifierValue, IList <BaseRulePart> > indexData, BaseRulePart indexedRulePart) { #if DEBUG //var dbgStr = DebugHelperForRuleInstance.BaseRulePartToString(indexedRulePart); //Log($"dbgStr = {dbgStr}"); #endif var relationsList = indexedRulePart.RelationsDict.SelectMany(p => p.Value).Distinct().ToList(); #if DEBUG //Log($"relationsList = {relationsList.WriteListToString()}"); #endif foreach (var relation in relationsList) { if (!RelationsList.Contains(relation)) { RelationsList.Add(relation); } } var keysOfRelationsList = indexedRulePart.RelationsDict.Keys.ToList(); #if DEBUG //Log($"keysOfRelationsList = {keysOfRelationsList.WriteListToString()}"); #endif foreach (var keyOfRelation in keysOfRelationsList) { #if DEBUG //Log($"keyOfRelation = {keyOfRelation}"); #endif if (indexData.ContainsKey(keyOfRelation)) { var tmpList = indexData[keyOfRelation]; if (!tmpList.Contains(indexedRulePart)) { tmpList.Add(indexedRulePart); } } else { var tmpList = new List <BaseRulePart>() { indexedRulePart }; indexData[keyOfRelation] = tmpList; } } }