} // func ParseTag /// <summary>Format tag for sqlite db.</summary> /// <param name="tag"></param> /// <returns></returns> public static string FormatTag(PpsObjectTag tag) { switch (tag.Class) { case PpsObjectTagClass.Deleted: return(tag.Name + ":-1="); case PpsObjectTagClass.Text: return(tag.Name + ":0=" + (tag.Value == null ? String.Empty : Procs.EscapeSpecialChars(tag.Value.ChangeType <string>()))); case PpsObjectTagClass.Number: return(tag.Name + ":1=" + (tag.Value == null ? String.Empty : Procs.EscapeSpecialChars(tag.Value.ChangeType <string>()))); case PpsObjectTagClass.Date: return(tag.Name + ":2=" + (tag.Value == null ? String.Empty : Procs.EscapeSpecialChars(tag.Value.ChangeType <string>()))); default: throw new ArgumentOutOfRangeException(nameof(PpsObjectTag.Class)); } } // func FormatTag
public void TestStringEscape() { Assert.AreEqual("Hello\\nWorld\\nHow are\\tyou!", Procs.EscapeSpecialChars("Hello\nWorld\r\nHow are\tyou!")); }