diff --git a/PocketSharp.Tests/RetrieveTests.cs b/PocketSharp.Tests/RetrieveTests.cs index fbbb821..6858624 100644 --- a/PocketSharp.Tests/RetrieveTests.cs +++ b/PocketSharp.Tests/RetrieveTests.cs @@ -35,12 +35,12 @@ namespace PocketSharp.Tests List items = await client.Retrieve( state: State.unread, tag: "pocket", - contentType: ContentType.article, + sort: Sort.title, since: new DateTime(2010, 12, 10), count: 2 ); - Assert.True(items.Count > 0); + Assert.InRange(items.Count, 0, 2); } diff --git a/PocketSharp/Models/Parameters/Parameters.cs b/PocketSharp/Models/Parameters/Parameters.cs index 30a0e6c..b5cb013 100644 --- a/PocketSharp/Models/Parameters/Parameters.cs +++ b/PocketSharp/Models/Parameters/Parameters.cs @@ -35,16 +35,30 @@ namespace PocketSharp.Models string name = attribute.Name ?? propertyInfo.Name.ToLower(); object value = propertyInfo.GetValue(this, null); + // invalid parameter if (value == null) { continue; } + // convert array to comma-seperated list if (value is IEnumerable && value.GetType().GetElementType() == typeof(string)) { value = string.Join(",", ((IEnumerable)value).Cast().Select(x => x.ToString()).ToArray()); } + // convert booleans + if (value is bool) + { + value = System.Convert.ToBoolean(value) ? "1" : "0"; + } + + // convert DateTime to UNIX timestamp + if (value is DateTime) + { + value = (int)((DateTime)value - new DateTime(1970, 1, 1)).TotalSeconds; + } + parameterDict.Add(name, value.ToString()); }