|
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------
namespace System.Activities.Presentation.Internal.PropertyEditing.State
{
// <summary>
// A set of utility methods we use to persist state
// </summary>
internal static class PersistedStateUtilities
{
// <summary>
// Escapes '&,;.' characters
// </summary>
// <param name="s">String to escape</param>
// <returns>Escaped string</returns>
public static string Escape(string s)
{
if (string.IsNullOrEmpty(s))
{
return null;
}
s = s.Replace("&", "&&");
s = s.Replace(",", "&comma&");
s = s.Replace(";", "&semicolon&");
s = s.Replace(".", "&dot&");
return s;
}
// <summary>
// Unescapes '&;,.' characters
// </summary>
// <param name="s">Escaped string</param>
// <returns>Unescaped string</returns>
public static string Unescape(string s)
{
if (string.IsNullOrEmpty(s))
{
return null;
}
s = s.Replace("&comma&", ",");
s = s.Replace("&semicolon&", ";");
s = s.Replace("&dot&", ".");
s = s.Replace("&&", "&");
return s;
}
// <summary>
// Converts 0 -> false, 1 -> true, anything else -> null
// </summary>
// <param name="digit">digit to convert</param>
// <returns>True/False/Null</returns>
public static bool? DigitToBool(string digit)
{
return "0".Equals(digit) ? false : ("1".Equals(digit) ? true : (bool?)null);
}
// <summary>
// Converts true -> 1, false -> 0
// </summary>
// <param name="value">Value to convert</param>
// <returns>Bool as a digit string</returns>
public static string BoolToDigit(bool value)
{
return value ? "1" : "0";
}
}
}
|