ReplaceText() публичный Метод

Find pattern regex must return a group match.
public ReplaceText ( string findPattern, string>.Func regexMatchHandler, bool trackChanges = false, RegexOptions options = RegexOptions.None, Formatting newFormatting = null, Formatting matchFormatting = null, MatchFormattingOptions fo = MatchFormattingOptions.SubsetMatch ) : void
findPattern string Regex pattern that must include one group match. ie (.*)
regexMatchHandler string>.Func A func that accepts the matching find grouping text and returns a replacement value
trackChanges bool
options RegexOptions
newFormatting Formatting
matchFormatting Formatting
fo MatchFormattingOptions
Результат void
Пример #1
0
        private bool ReplaceBday(Paragraph pg, string code, DirectoryInfo di)
        {
            if (!bdayre.IsMatch(code))
            {
                return(false);
            }
            if (di.Person.BirthDate.HasValue)
            {
                var m   = bdayre.Match(code);
                var txt = m.Groups["text"].Value;

                if (!txt.HasValue())
                {
                    pg.ReplaceText(code, di.Person.BirthDate.ToString2("MMM d"));
                }
                else
                {
                    txt = txt.Replace("_first_", di.Person.PreferredName);
                    m   = dtfmtre.Match(txt);
                    var repl = m.Value;
                    var mfmt = m.Groups["fmt"].Value;
                    txt = txt.Replace(repl, di.Person.BirthDate.ToString2(Util.PickFirst(mfmt, "MMM d")));
                    pg.ReplaceText(code, txt);
                }
            }
            else
            {
                pg.ReplaceText(code, "");
            }
            return(true);
        }
Пример #2
0
 private bool ReplaceCell(Paragraph pg, string code, DirectoryInfo di)
 {
     if (!cellre.IsMatch(code))
     {
         return(false);
     }
     if (di.CellPhone.HasValue())
     {
         var m   = cellre.Match(code);
         var txt = m.Groups["text"].Value;
         if (!txt.HasValue())
         {
             pg.ReplaceText(code, di.CellPhone);
         }
         else
         {
             txt = txt.Replace("_number_", di.CellPhone)
                   .Replace("_first_", di.Person.PreferredName);
             pg.ReplaceText(code, txt);
         }
     }
     else
     {
         pg.ReplaceText(code, "");
     }
     return(true);
 }
Пример #3
0
 private bool ReplaceEmail(Paragraph pg, string code, DirectoryInfo di)
 {
     if (!emailre.IsMatch(code))
     {
         return(false);
     }
     if (di.Person.EmailAddress.HasValue())
     {
         var m   = emailre.Match(code);
         var txt = m.Groups["text"].Value;
         if (!txt.HasValue())
         {
             pg.ReplaceText(code, di.Person.EmailAddress);
         }
         else
         {
             txt = txt.Replace("_addr_", di.Person.EmailAddress)
                   .Replace("_first_", di.Person.PreferredName);
             pg.ReplaceText(code, txt);
         }
     }
     else
     {
         pg.ReplaceText(code, "");
     }
     return(true);
 }
Пример #4
0
 private bool ReplacePhone(Paragraph pg, string code, DirectoryInfo di)
 {
     if (!phonere.IsMatch(code))
     {
         return(false);
     }
     if (!di.HomePhone.HasValue() || di.SpouseDoNotPublishPhone == true)
     {
         pg.ReplaceText(code, "");
     }
     else
     {
         var m   = phonere.Match(code);
         var txt = m.Groups["text"].Value;
         pg.ReplaceText(code, txt.HasValue()
             ? txt.Replace("_number_", di.HomePhone)
             : di.HomePhone);
     }
     return(true);
 }
Пример #5
0
 private bool ReplaceSpouse(Paragraph pg, string code, DirectoryInfo di)
 {
     if (!spousere.IsMatch(code))
     {
         return(false);
     }
     if (di.SpouseName.HasValue())
     {
         var m   = spousere.Match(code);
         var txt = m.Groups["text"].Value;
         pg.ReplaceText(code, txt.HasValue()
             ? txt.Replace("_name_", di.SpouseName)
             : di.SpouseName);
     }
     else
     {
         pg.ReplaceText(code, "");
     }
     return(true);
 }
Пример #6
0
 private bool ReplaceKids(Paragraph pg, string code, DirectoryInfo di)
 {
     if (!kidsre.IsMatch(code))
     {
         return(false);
     }
     if (di.Children.HasValue())
     {
         var m   = kidsre.Match(code);
         var txt = m.Groups["text"].Value;
         pg.ReplaceText(code, txt.HasValue()
             ? txt.Replace("_names_", di.Children)
             : di.Children);
     }
     else
     {
         pg.ReplaceText(code, "");
     }
     return(true);
 }
Пример #7
0
 private bool ReplaceAnniversary(Paragraph pg, string code, DirectoryInfo di)
 {
     if (!anniversaryre.IsMatch(code))
     {
         return(false);
     }
     if (di.Person.WeddingDate.HasValue)
     {
         var m   = anniversaryre.Match(code);
         var txt = m.Groups["text"].Value;
         m = dtfmtre.Match(txt);
         var repl = m.Value;
         var mfmt = m.Groups["fmt"].Value;
         pg.ReplaceText(code, txt.HasValue()
             ? txt.Replace(repl, di.Person.WeddingDate.ToString2(Util.PickFirst(mfmt, "MMM d")))
             : di.Person.WeddingDate.ToString2("MMM d"));
     }
     else
     {
         pg.ReplaceText(code, "");
     }
     return(true);
 }
Пример #8
0
        private void DoHeaderFooterParagraphReplacments(Paragraph p, OrgInfo o)
        {
            var list = EmailReplacements.TextReplacementsList(p.Text);

            foreach (var code in list)
            {
                if (code.StartsWith("{datemeeting"))
                {
                    p.ReplaceText(code,
                                  Util.PickFirst(EmailReplacements
                                                 .DateFormattedReplacement(NewMeetingInfo.MeetingDate, code)
                                                 , "____"));
                }
                else if (code == "{orgname}")
                {
                    p.ReplaceText(code, o.Name);
                }
                else if (code == "{today}")
                {
                    p.ReplaceText(code, DateTime.Today.ToShortDateString());
                }
                else if (code == "{orgid}")
                {
                    p.ReplaceText(code, o.OrgId.ToString());
                }
                else if (code == "{barcodemeeting}")
                {
                    var text = $"M.{o.OrgId}.{NewMeetingInfo.MeetingDate:MMddyyHHmm}";
                    var s    = BarCodeStream(text, 50, showtext: false);
                    var img  = curr.AddImage(s);
                    p.AppendPicture(img.CreatePicture());
                    p.ReplaceText(code, "");
                    p.Alignment = Alignment.right;
                }
            }
        }
Пример #9
0
        private bool ReplacePic(Paragraph pg, string code, DirectoryInfo di)
        {
            if (!picre.IsMatch(code))
            {
                return(false);
            }
            var m      = picre.Match(code);
            var pic    = m.Groups["pic"].Value;
            var height = m.Groups["height"].Value.ToDouble();
            var width  = m.Groups["width"].Value.ToDouble();

            pg.ReplaceText(code, "");
            AddPicture(pg, width, height, pic == "pic" ? di.ImageId : di.FamImageId);
            return(true);
        }
Пример #10
0
        private bool ReplaceCode(Paragraph pg, string code, DirectoryInfo di)
        {
            if (code.Equal("{altname}"))
            {
                pg.ReplaceText(code, di.Person.AltName);
            }
            else if (code.Equal("{name}"))
            {
                pg.ReplaceText(code, di.Person.Name);
            }
            else if (code.Equal("{name2}"))
            {
                pg.ReplaceText(code, di.Person.Name2);
            }
            else if (code.Equal("{familyname}"))
            {
                pg.ReplaceText(code, di.FamilyName);
            }
            else if (code.Equal("{familytitle}"))
            {
                pg.ReplaceText(code, di.FamilyTitle);
            }
            else if (code.Equal("{lastname}"))
            {
                pg.ReplaceText(code, di.Person.LastName);
            }
            else if (code.Equal("{firstnames}"))
            {
                pg.ReplaceText(code, di.FirstNames);
            }
            else if (code.Equal("{addr}"))
            {
                pg.ReplaceText(code, di.Address);
            }

            else if (ReplaceBday(pg, code, di))
            {
                return(true);
            }
            else if (ReplaceAnniversary(pg, code, di))
            {
                return(true);
            }
            else if (ReplaceEmail(pg, code, di))
            {
                return(true);
            }
            else if (ReplaceSpEmail(pg, code, di))
            {
                return(true);
            }
            else if (ReplacePhone(pg, code, di))
            {
                return(true);
            }
            else if (ReplaceCell(pg, code, di))
            {
                return(true);
            }
            else if (ReplaceSpCell(pg, code, di))
            {
                return(true);
            }
            else if (ReplaceSpouse(pg, code, di))
            {
                return(true);
            }
            else if (ReplaceKids(pg, code, di))
            {
                return(true);
            }
            else if (ReplacePic(pg, code, di))
            {
                return(true);
            }
            else
            {
                return(false);
            }
            return(true);
        }
Пример #11
-1
 private bool ReplaceSpEmail(Paragraph pg, string code, DirectoryInfo di)
 {
     if (!spemailre.IsMatch(code))
     {
         return(false);
     }
     if (di.SpouseEmail.HasValue())
     {
         var m   = spemailre.Match(code);
         var txt = m.Groups["text"].Value;
         if (!txt.HasValue())
         {
             pg.ReplaceText(code, di.SpouseEmail);
         }
         else
         {
             txt = txt.Replace("_addr_", di.SpouseEmail)
                   .Replace("_first_", di.SpouseFirst);
             pg.ReplaceText(code, txt);
         }
     }
     else
     {
         pg.ReplaceText(code, "");
     }
     return(true);
 }