public void Merge2Levels1() { var selector = new FieldSelector <object>().Add("a:(m)").Add("a:(n:(z))"); Assert.AreEqual(2, selector.Items.Length); Assert.AreEqual(":(a:(m,n:(z)))", selector.ToString()); }
public void ToStringEmpty() { var target = new FieldSelector <FieldSelectorTests>(); var result = target.ToString(); Assert.AreEqual(string.Empty, result); }
public void Merge2Levels() { var selector = new FieldSelector <object>().Add("location:(name)").Add("location:(country:(code))"); Assert.AreEqual(2, selector.Items.Length); Assert.AreEqual(":(location:(name,country:(code)))", selector.ToString()); }
public void ToString3() { var target = new FieldSelector <FieldSelectorTests>().Add("hello").Add("location:(name,country)").Add("world"); var result = target.ToString(); Assert.AreEqual(":(hello,location:(name,country),world)", result); }
public void DeDuplicate() { var selector = new FieldSelector <object>().Add("location").Add("location:()"); Assert.AreEqual(2, selector.Items.Length); Assert.AreEqual(":(location)", selector.ToString()); }
public void ToString2() { var target = new FieldSelector <FieldSelectorTests>().Add("hello").Add("world"); var result = target.ToString(); Assert.AreEqual(":(hello,world)", result); }
public void ToString2SlashColon() { var target = new FieldSelector <FieldSelectorTests>().Add("hello:(name)").Add("world/wtf"); var result = target.ToString(); Assert.AreEqual(":(hello:(name),world/wtf)", result); }
public void ToString1Slash() { var target = new FieldSelector <FieldSelectorTests>().Add("hello/name"); var result = target.ToString(); Assert.AreEqual(":(hello/name)", result); }
/// <summary> /// Formats the URL. /// </summary> /// <param name="format">The format.</param> /// <param name="fieldSelector">The field selectors.</param> /// <param name="values">The values.</param> /// <returns></returns> protected string FormatUrl(string format, FieldSelector fieldSelector, params object[] values) { var result = format; var dic = new Dictionary <string, string>(values.Length / 2); for (int i = 0; i < values.Length; i++) { if (i % 2 == 1) { var key = values[i - 1].ToString(); object valueObject = values[i] != null ? values[i] : null; var value = valueObject != null?valueObject.ToString() : null; if (valueObject != null) { var type = valueObject.GetType(); DateTime?ndt = null; if (type == typeof(DateTime?)) { ndt = (DateTime?)valueObject; } if (type == typeof(DateTime)) { ndt = (DateTime)valueObject; } if (ndt != null) { value = ndt.Value.ToUnixTime().ToString(); } } dic.Add(key, value); } } if (fieldSelector != null) { result = result.Replace("{FieldSelector}", fieldSelector.ToString()); } else { result = result.Replace("{FieldSelector}", string.Empty); } foreach (var key in dic.Keys) { var value = dic[key]; if (value != null) { result = result.Replace("{" + key + "}", value); } else { result = result.Replace("{" + key + "}", string.Empty); } } return(result); }
/// <summary> /// Formats the URL. /// </summary> /// <param name="format">The format.</param> /// <param name="fieldSelector">The field selectors.</param> /// <param name="skipUrlParamsEscape">list lit comma separated values. e.g.: urn,id,postId</param> /// <param name="values">The values.</param> /// <returns></returns> protected string FormatUrl(string format, FieldSelector fieldSelector, string skipUrlParamsEscape, params object[] values) { var result = format; var dic = new Dictionary <string, string>(values.Length / 2); for (int i = 0; i < values.Length; i++) { if (i % 2 == 1) { var key = values[i - 1].ToString(); object valueObject = values[i] != null ? values[i] : null; var value = valueObject != null?valueObject.ToString() : null; if (valueObject != null) { var type = valueObject.GetType(); DateTime?ndt = null; if (type == typeof(DateTime?)) { ndt = (DateTime?)valueObject; } if (type == typeof(DateTime)) { ndt = (DateTime)valueObject; } if (ndt != null) { value = ndt.Value.ToUnixTime().ToString(); } } dic.Add(key, value); } } if (fieldSelector != null) { var selector = fieldSelector.ToString(); selector = selector.Replace("~~~", "~:"); result = result.Replace("{FieldSelector}", selector); } else { result = result.Replace("{FieldSelector}", string.Empty); } var skipParamsEscape = !string.IsNullOrEmpty(skipUrlParamsEscape) ? skipUrlParamsEscape.Split(',').ToList() : new List <string>(); foreach (var key in dic.Keys) { var value = dic[key]; if (value != null) { var skipEscape = skipParamsEscape.Contains(key); result = result.Replace("{" + key + "}", skipEscape ? value : Uri.EscapeDataString(value)); } else { result = result.Replace("{" + key + "}", string.Empty); } } return(result); }
public void ToString1() { var target = new FieldSelector<FieldSelectorTests>().Add("hello"); var result = target.ToString(); Assert.AreEqual(":(hello)", result); }
public void ToString2SlashColon() { var target = new FieldSelector<FieldSelectorTests>().Add("hello:(name)").Add("world/wtf"); var result = target.ToString(); Assert.AreEqual(":(hello:(name),world/wtf)", result); }
public void MergeSimple() { var selector = new FieldSelector<object>().Add("location:(name)").Add("location:(code)"); Assert.AreEqual(2, selector.Items.Length); Assert.AreEqual(":(location:(name,code))", selector.ToString()); }
public void Merge2Levels1() { var selector = new FieldSelector<object>().Add("a:(m)").Add("a:(n:(z))"); Assert.AreEqual(2, selector.Items.Length); Assert.AreEqual(":(a:(m,n:(z)))", selector.ToString()); }
public void DeDuplicate() { var selector = new FieldSelector<object>().Add("location").Add("location:()"); Assert.AreEqual(2, selector.Items.Length); Assert.AreEqual(":(location)", selector.ToString()); }
public void ToStringEmpty() { var target = new FieldSelector<FieldSelectorTests>(); var result = target.ToString(); Assert.AreEqual(string.Empty, result); }
public void ToString3() { var target = new FieldSelector<FieldSelectorTests>().Add("hello").Add("location:(name,country)").Add("world"); var result = target.ToString(); Assert.AreEqual(":(hello,location:(name,country),world)", result); }