Example #1
0
        // 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);
        }