1 //----------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 //----------------------------------------------------------------
4 namespace System.Activities.Presentation.Internal.PropertyEditing.State
8 // A set of utility methods we use to persist state
10 internal static class PersistedStateUtilities
14 // Escapes '&,;.' characters
16 // <param name="s">String to escape</param>
17 // <returns>Escaped string</returns>
18 public static string Escape(string s)
20 if (string.IsNullOrEmpty(s))
25 s = s.Replace("&", "&&");
26 s = s.Replace(",", "&comma&");
27 s = s.Replace(";", "&semicolon&");
28 s = s.Replace(".", "&dot&");
33 // Unescapes '&;,.' characters
35 // <param name="s">Escaped string</param>
36 // <returns>Unescaped string</returns>
37 public static string Unescape(string s)
39 if (string.IsNullOrEmpty(s))
44 s = s.Replace("&comma&", ",");
45 s = s.Replace("&semicolon&", ";");
46 s = s.Replace("&dot&", ".");
47 s = s.Replace("&&", "&");
52 // Converts 0 -> false, 1 -> true, anything else -> null
54 // <param name="digit">digit to convert</param>
55 // <returns>True/False/Null</returns>
56 public static bool? DigitToBool(string digit)
58 return "0".Equals(digit) ? false : ("1".Equals(digit) ? true : (bool?)null);
62 // Converts true -> 1, false -> 0
64 // <param name="value">Value to convert</param>
65 // <returns>Bool as a digit string</returns>
66 public static string BoolToDigit(bool value)
68 return value ? "1" : "0";