ParametrizedString.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System.Collections.Generic;
  2. using System.Text;
  3. namespace Quadarax.Foundation.Core.Value
  4. {
  5. public class ParameterizedString
  6. {
  7. private readonly string _parameterPrefix;
  8. private readonly string _parameterPostfix;
  9. private readonly string _initialString;
  10. private readonly IDictionary<string, string> _parameters;
  11. public ParameterizedString(string initialString,string parameterPrefix = "", string parameterPostfix = "")
  12. {
  13. _parameterPostfix = parameterPostfix;
  14. _parameterPrefix = parameterPrefix;
  15. _initialString = initialString;
  16. _parameters = new Dictionary<string, string>();
  17. }
  18. public bool AddParameter(string name, string value)
  19. {
  20. if(_parameters.ContainsKey(name))
  21. {
  22. return false;
  23. }
  24. _parameters.Add(name, value);
  25. return true;
  26. }
  27. public override string ToString()
  28. {
  29. var sb = new StringBuilder(_initialString);
  30. foreach (var key in _parameters.Keys)
  31. {
  32. sb.Replace(_parameterPrefix + key + _parameterPostfix, _parameters[key]);
  33. }
  34. return sb.ToString();
  35. }
  36. }
  37. }