Example #1
0
        // 变换为适于保存到数据库中 MessageItem.groups 的形态
        public bool Canonicalize(Delegate_replaceName proc_replace)
        {
            bool bChanged = false;

            // 把 gn 替换为 gi
            // 把 un 替换为 ui
            foreach (GroupName name in this.Names)
            {
                if ((name.Type == "gn" && (name.Text[0] != '<' && name.Text[0] != '_')) ||
                    name.Type == "un")
                {
                    GroupName result_name = proc_replace(name);
                    name.Text = result_name.Text;
                    name.Type = result_name.Type;
                    bChanged  = true;
                }
            }

            if (bChanged)
            {
                this.SortNames();
                CheckGroupNameUnion();
                return(true);
            }

            CheckGroupNameUnion();
            return(false);
        }
Example #2
0
        // 变换为适于保存到数据库中 MessageItem.groups 的形态
        public static List <string> Canonicalize(List <string> names,
                                                 Delegate_replaceName proc_replace,
                                                 bool bCheckUnion = true)
        {
            GroupSegment segment = new GroupSegment(names.ToArray(), "");

            // 把 gn 替换为 gi
            // 把 un 替换为 ui
            foreach (GroupName name in segment.Names)
            {
                if ((name.Type == "gn" && (name.Text[0] != '<' && name.Text[0] != '_')) ||
                    name.Type == "un")
                {
                    GroupName result_name = proc_replace(name);
                    name.Text = result_name.Text;
                    name.Type = result_name.Type;
                }
            }

            if (bCheckUnion)
            {
                segment.SortNames();
                segment.CheckGroupNameUnion();
            }

            return(segment.ToStringList());
        }
Example #3
0
        // 将 MessageItem.groups 变换为适于显示的形态
        public bool Displaylize(Delegate_replaceName proc_replace)
        {
            bool bChanged = false;

            foreach (GroupSegment segment in this.Segments)
            {
                if (segment.Displaylize(proc_replace))
                {
                    bChanged = true;
                }
            }

            return(bChanged);
        }
Example #4
0
        // 将 MessageItem.groups 变换为适于显示的形态
        public bool Displaylize(Delegate_replaceName proc_replace)
        {
            bool bChanged = false;

            // 把 gn 替换为 gi
            // 把 un 替换为 ui
            foreach (GroupName name in this.Names)
            {
                if (name.Type == "gi" || name.Type == "ui")
                {
                    GroupName result_name = proc_replace(name);
                    name.Text = result_name.Text;
                    name.Type = result_name.Type;
                    bChanged  = true;
                }
            }

            return(bChanged);
        }