static void RemoveTrailingBracket(Wd.Range range)
 {
     range.MoveEnd(Wd.WdUnits.wdCharacter, 2);
     if (range.Characters.Count == 2 && range.Text == "\")")
         range.Delete();
     range.Collapse(Wd.WdCollapseDirection.wdCollapseStart);
 }
 static void RemovePreceedingComma(Wd.Range range)
 {
     range.MoveStart(Wd.WdUnits.wdCharacter, -2);
     if (range.Characters.Count == 2 && range.Text == ", ")
         range.Delete();
     range.Collapse(Wd.WdCollapseDirection.wdCollapseEnd);
 }
        public static void InsertOrRemove(this string[] controlTags, ref Wd.Range range, bool KeepControls, Wd.WdCollapseDirection CollapseDirection = Wd.WdCollapseDirection.wdCollapseEnd)
        {
            Wd.Document doc = range.Document;
            var bookmark = "EditDetails_" + controlTags.First().Replace(' ', '_');

            if (!doc.ContentControls().AllExist(controlTags))
            {
                doc.ContentControls(x => StringArray.Contains(controlTags, x.Tag)).DelteRowOrParagraph();
                if (KeepControls)
                {
                    range = range.InsertFile_Safe1(doc.Template().FullName, bookmark);
                    range.Collapse(CollapseDirection);
                }
            }

            if (KeepControls)
            {
                range = doc.ContentControls(x => x.Tag == controlTags.First()).First().CollapsePastRowOrParagraph(CollapseDirection);
                doc.ContentControls(x => StringArray.Contains(controlTags, x.Tag) && x.ShowingPlaceholderText).DeleteWithTrailingWhiteSpaceOrParagraphIfEmpty();
            }
            else
                doc.ContentControls(x => StringArray.Contains(controlTags, x.Tag)).DelteRowOrParagraph();

            range.Document.Bookmarks.DeleteIfExists(bookmark);
        }
 public static Wd.Range InsertOrRemove(this IList<Wd.ContentControl> controls, ref Wd.Range range, bool KeepControl, string ControlTag, Wd.WdCollapseDirection CollapseDirection = Wd.WdCollapseDirection.wdCollapseEnd)
 {
     var bookmark = "EditDetails_" + ControlTag.Replace(' ', '_');
     if (controls.Count == 0 && KeepControl)
     {
         range = range.InsertFile_Safe1(range.Document.Template().FullName, bookmark);
         range.Collapse(CollapseDirection);
     }
     foreach (Wd.ContentControl control in controls)
         if (KeepControl)
             range = control.CollapsePastRowOrParagraph(CollapseDirection);
         else
             control.DelteRowOrParagraphOrRepeater();
     range.Document.Bookmarks.DeleteIfExists(bookmark);
     return range;
 }