Exemplo n.º 1
0
        private static List <FilterItem> GetFilters(string input,
                                                    Match match,
                                                    ReplaceTemplateItem item)
        {
            List <FilterItem> lstFilter = new List <FilterItem>();

            foreach (DataRow drWhen in item.When)
            {
                bool action = false;
                if (drWhen.IsNull("action"))
                {
                    action = (bool)drWhen.Table.Columns["action"].DefaultValue;
                }
                else
                {
                    action = (bool)drWhen["action"];
                }

                string pattern = ReplaceUtils.GetRegexPattern(drWhen);
                //pattern = ReplaceReference.Reference(pattern, match);
                RegexOptions options = ReplaceUtils.GetRegexOptions(drWhen);
                Regex        reg     = new Regex(pattern, options);
                if (reg != null)
                {
                    GetFilters(input, reg, action, lstFilter);
                }
            }

            return(lstFilter);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Trim Reference of Replacement.ReplacePairs to Const Strings.
 /// <remarks>
 /// e.g
 /// [$ABCD$] => ABCD
 /// </remarks>
 /// </summary>
 public static void Reference(ReplaceTemplateItem rep)
 {
     foreach (DataRow row in rep.Replace)
     {
         //f2[kv.Key] = Reference(kv.Value);
     }
     //CollectionUtil.Combine(f2, rep.ReplacePairs);
 }
Exemplo n.º 3
0
        public static ReplaceTemplateItem GetTemplateItem(DataRow drTemplateType)
        {
            ReplaceTemplateItem template = new ReplaceTemplateItem();

            template.Pattern = drTemplateType.GetChildRows("item_pattern")[0];
            template.Replace = drTemplateType.GetChildRows("item_replace");
            template.When    = drTemplateType.GetChildRows("item_when");
            return(template);
        }
Exemplo n.º 4
0
        public static bool CanReplace(string input,
                                      Match match,
                                      ReplaceTemplateItem item)
        {
            List <FilterItem> lstFilter = GetFilters(input, match, item);

            if (lstFilter.Count == 0)
            {
                return(true);
            }

            return(!lstFilter.Any(filter => filter.Index <= match.Index &&
                                  match.Index + match.Length <= filter.Index + filter.Length &&
                                  !filter.Enable));
        }
Exemplo n.º 5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="node"></param>
        /// <param name="item"></param>
        private void LoadItemXml(XmlNode node, ReplaceTemplateItem item)
        {
            //item.Pattern = node.SelectSingleNode("pattern").InnerText.Trim();
            //foreach (XmlNode repNode in node.SelectNodes("replace"))
            //{
            //    string value = repNode.InnerText;
            //    string group = Xmler.GetAttribute(repNode, "group");
            //    int groupindex;
            //    if (int.TryParse(group, out groupindex))
            //    {
            //        item.ReplacePairs[groupindex] = repNode.InnerText.Trim();
            //    }
            //}

            //// Load Item Private Filters
            //CollectionUtil.Combine(GetFilters(node), item.Filters);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Replacement refercences Match.
        /// </summary>
        /// <param name="replacement"></param>
        /// <param name="match"></param>
        public static void ReferenceDictionary(ReplaceTemplateItem replacement, Match match)
        {
            string pattern = string.Empty;
            string replace = string.Empty;

            Dictionary <int, string> pair = new Dictionary <int, string>();
            //foreach (KeyValuePair<int, string> kv in replacement.ReplacePairs)
            //{
            //    replace = kv.Value;
            //    //================================
            //    replace = Reference(replace, match, kv.Key, replacement.Dictionary);

            //    replace = Reference(replace, match);
            //    //================================
            //    pair[kv.Key] = replace;
            //}

            //replacement.ReplacePairs.Clear();
            //CollectionUtil.Combine(pair, replacement.ReplacePairs);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Replacement refercences Match.
        /// </summary>
        /// <param name="replacement"></param>
        /// <param name="match"></param>
        public static Dictionary <int, string> Reference(ReplaceTemplateItem replacement, Match match)
        {
            string replace = string.Empty;
            Dictionary <int, string> pair = new Dictionary <int, string>();

            //foreach (KeyValuePair<int, string> kv in replacement.ReplacePairs)
            //{
            //    replace = kv.Value;
            //    //================================
            //    if (replace.Equals("#REFRENCE_DIC_COMPLETE"))
            //    {
            //        replace = match.Groups[kv.Key].Value;
            //        replace = CollectionUtil.GetValue(replacement.Dictionary, replace);
            //    }

            //    replace = Reference(replace, match);
            //    //================================
            //    pair[kv.Key] = replace;
            //}

            return(pair);
        }
Exemplo n.º 8
0
        /// <summary>
        /// Replacement refercences Dictionary<name, value>.
        /// </summary>
        /// <param name="rep"></param>
        /// <param name="args"></param>
        public static void Reference(ReplaceTemplateItem rep, Dictionary <string, string> args)
        {
            string refargs = Parameters.Instance["refargs"];

            if (string.IsNullOrEmpty(refargs))
            {
                return;
            }

            // Check Pattern
            //rep.Pattern = Reference(rep.Pattern, refargs, args);

            //========================================================
            // Check Filters
            string key = string.Empty;
            Dictionary <string, bool> tFilters = new Dictionary <string, bool>();
            //foreach (KeyValuePair<string, bool> kv in rep.Filters)
            //{
            //    key = Reference(kv.Key, refargs, args);
            //    tFilters[key] = kv.Value;
            //}
            //rep.Filters.Clear();
            //CollectionUtil.Combine(tFilters, rep.Filters);

            //========================================================
            // Check ReplacePairs
            //Dictionary<int, string> f2 = new Dictionary<int, string>();
            //string value = string.Empty;
            //foreach (KeyValuePair<int, string> kv in rep.ReplacePairs)
            //{
            //    f2[kv.Key] = Reference(kv.Value, refargs, args);
            //}

            //rep.ReplacePairs.Clear();
            //CollectionUtil.Combine(f2, rep.ReplacePairs);
        }
Exemplo n.º 9
0
 public static string ReplaceGroup(string input, ReplaceTemplateItem replacement)
 {
     return(DefaultReplacer.Replace(input, replacement));
 }