Пример #1
0
        private ParsedScrubfuTag GetParsedTagFromTagString(string tagName, string tagOptions, int?columnArrayIndex, int lineNum)
        {
            ParsedScrubfuTag tag = null;

            switch (tagName.ToUpper())
            {
            case "MA":
            case "MASK":
                tag = new MaskTag(tagOptions, columnArrayIndex);
                break;

            case "RE":
            case "REPLACE":
                tag = new ReplaceTag(tagOptions, columnArrayIndex);
                break;

            case "RA":
            case "RANDOM":
                tag = new RandomTag(tagOptions, columnArrayIndex);
                break;

            case "FZ":
            case "FUZZ":
                tag = new FuzzTag(tagOptions, columnArrayIndex);
                break;
            }

            if (tag != null && !tag.ValidateTag())
            {
                LogWarning(string.Format("A potentially invalidly formatted Scrubfu tag was found while processing line {0}.", lineNum));
                tag = null;
            }

            return(tag);
        }
Пример #2
0
        private List <ParsedScrubfuTag> GetScrubfuTagsFromColumnComment(string comment, int lineNum)
        {
            List <ParsedScrubfuTag> returnTags = new List <ParsedScrubfuTag>();

            List <string> tagDefinitions = GetTagSetsInComment(comment, lineNum);

            for (int i = 0; i < tagDefinitions.Count; i++)
            {
                string tagDefinition = tagDefinitions[i];

                var tagName          = tagDefinition;
                int?columnArrayIndex = null;
                var tagOptions       = "";

                if (tagDefinition.IndexOf(":", StringComparison.Ordinal) > -1)
                {
                    tagName = tagDefinition.Substring(0, tagDefinition.IndexOf(":", StringComparison.Ordinal));

                    if (tagName.Contains("[") && tagName.Contains("]"))
                    {
                        columnArrayIndex = int.Parse(tagName.Substring(tagName.IndexOf("[", StringComparison.Ordinal) + 1,
                                                                       tagName.IndexOf("[", StringComparison.Ordinal) - 1));
                        tagName = tagName.Substring(0, tagName.IndexOf("[", StringComparison.Ordinal));
                    }

                    tagOptions = tagDefinition.Substring(tagDefinition.IndexOf(":", StringComparison.Ordinal) + 1);
                }

                ParsedScrubfuTag tag = GetParsedTagFromTagString(tagName, tagOptions, columnArrayIndex, lineNum);

                if (tag != null)
                {
                    returnTags.Add(tag);
                }
            }

            return(returnTags);
        }