// This method converts an ItemFilterBlock object into a string. This is used for copying a ItemFilterBlock // to the clipboard, and when saving a ItemFilterScript. public string TranslateItemFilterBlockToString(ItemFilterBlock block) { if (block.GetType() == typeof(ItemFilterSection)) { return("# Section: " + block.Description); } var outputString = string.Empty; if (!block.Enabled) { outputString += "#Disabled Block Start" + Environment.NewLine; } if (!string.IsNullOrEmpty(block.Description)) { outputString += "# " + block.Description + Environment.NewLine; } outputString += (!block.Enabled ? "#" : string.Empty) + block.Action.GetAttributeDescription(); if (block.BlockGroup != null) { outputString += " # " + block.BlockGroup; } // ReSharper disable once LoopCanBeConvertedToQuery foreach (var blockItem in block.BlockItems.Where(b => b.GetType() != typeof(ActionBlockItem)).OrderBy(b => b.SortOrder)) { if (blockItem.OutputText != string.Empty) { outputString += (!block.Enabled ? _disabledNewLine : _newLine) + blockItem.OutputText; } } if (!block.Enabled) { outputString += Environment.NewLine + "#Disabled Block End"; } return(outputString); }