bool IsLastVariableMapping(IMoRuleMapping mapping) { if (mapping.ClassID == MoCopyFromInputTags.kClassId) { var copy = (IMoCopyFromInput)mapping; if (IsLastVariable(copy.ContentRA)) { return(true); } } return(false); }
bool IsFinalLastVariableMapping(IMoRuleMapping mapping) { if (IsLastVariableMapping(mapping)) { int numLastVarMappings = 0; foreach (var curMapping in Rule.OutputOS) { if (IsLastVariableMapping(curMapping)) { numLastVarMappings++; } } return(numLastVarMappings == 1); } return(false); }
int InsertIntoOutput(IMoRuleMapping mapping, SelectionHelper sel) { ICmObject[] mappings = Rule.OutputOS.Cast <ICmObject>().ToArray(); int index = GetInsertionIndex(mappings, sel); Rule.OutputOS.Insert(index, mapping); if (sel.IsRange) { IEnumerable <int> indices = GetIndicesToRemove(mappings, sel); foreach (int idx in indices) { Rule.OutputOS.Remove((IMoRuleMapping)mappings[idx]); } } return(index); }
private static XElement ExportRuleMapping(IMoRuleMapping ruleMapping) { switch (ruleMapping.ClassName) { default: // MoInsertNC is not supported as of 14 November 2009. throw new ArgumentException("Unrecognized subclass of IMoRuleMapping"); case "MoInsertPhones": var insertPhones = (IMoInsertPhones)ruleMapping; return new XElement("MoInsertPhones", new XAttribute("Id", ruleMapping.Hvo), from insertContent in insertPhones.ContentRS select ExportItemAsReference(insertContent, insertPhones.ContentRS.IndexOf(insertContent), "Content")); case "MoCopyFromInput": var copyFromInput = (IMoCopyFromInput)ruleMapping; return new XElement("MoCopyFromInput", new XAttribute("Id", ruleMapping.Hvo), ExportItemAsReference(copyFromInput.ContentRA, "Content")); case "MoModifyFromInput": var modifyFromInput = (IMoModifyFromInput)ruleMapping; return new XElement("MoModifyFromInput", new XAttribute("Id", ruleMapping.Hvo), ExportItemAsReference(modifyFromInput.ContentRA, "Content"), ExportItemAsReference(modifyFromInput.ModificationRA, "Modification")); } }
bool IsFinalLastVariableMapping(IMoRuleMapping mapping) { if (IsLastVariableMapping(mapping)) { int numLastVarMappings = 0; foreach (var curMapping in Rule.OutputOS) { if (IsLastVariableMapping(curMapping)) numLastVarMappings++; } return numLastVarMappings == 1; } return false; }
bool IsLastVariableMapping(IMoRuleMapping mapping) { if (mapping.ClassID == MoCopyFromInputTags.kClassId) { var copy = (IMoCopyFromInput) mapping; if (IsLastVariable(copy.ContentRA)) return true; } return false; }
int InsertIntoOutput(IMoRuleMapping mapping, SelectionHelper sel) { ICmObject[] mappings = Rule.OutputOS.Cast<ICmObject>().ToArray(); int index = GetInsertionIndex(mappings, sel); Rule.OutputOS.Insert(index, mapping); if (sel.IsRange) { IEnumerable<int> indices = GetIndicesToRemove(mappings, sel); foreach (int idx in indices) Rule.OutputOS.Remove((IMoRuleMapping) mappings[idx]); } return index; }
int InsertIntoOutput(IMoRuleMapping mapping, SelectionHelper sel) { int[] hvos = Rule.OutputOS.HvoArray; int index = GetInsertionIndex(hvos, sel); Rule.OutputOS.InsertAt(mapping, index); if (sel.IsRange) { IEnumerable<int> indices = GetIndicesToRemove(hvos, sel); foreach (int idx in indices) { IMoRuleMapping removeMapping = MoRuleMapping.CreateFromDBObject(m_cache, hvos[idx]); removeMapping.DeleteUnderlyingObject(); } } return index; }