diff --git a/FortnoxAPILibrary.Tests/ConnectorTests/InvoiceTests.cs b/FortnoxAPILibrary.Tests/ConnectorTests/InvoiceTests.cs index 2ce52554..c0ad8510 100644 --- a/FortnoxAPILibrary.Tests/ConnectorTests/InvoiceTests.cs +++ b/FortnoxAPILibrary.Tests/ConnectorTests/InvoiceTests.cs @@ -272,5 +272,22 @@ public void Test_Email() new ArticleConnector().Delete(tmpArticle.ArticleNumber); #endregion Delete arranged resources } + + [TestMethod] + public void Test_Search() + { + var connector = new InvoiceConnector(); + connector.FromDate = new DateTime(2020,10, 10); + connector.ToDate = new DateTime(2020, 10, 15); + + var result = connector.Find(); + + Assert.IsTrue(result.Entities.Count > 0); + foreach (var invoice in result.Entities) + { + Assert.IsTrue(invoice.InvoiceDate >= connector.FromDate); + Assert.IsTrue(invoice.InvoiceDate <= connector.ToDate); + } + } } } diff --git a/FortnoxAPILibrary.Tests/ReportedIssuesTests.cs b/FortnoxAPILibrary.Tests/ReportedIssuesTests.cs index 387b8462..af406043 100644 --- a/FortnoxAPILibrary.Tests/ReportedIssuesTests.cs +++ b/FortnoxAPILibrary.Tests/ReportedIssuesTests.cs @@ -56,7 +56,7 @@ public void Test_issue51_fixed() //Origins from https://github.com/FortnoxAB/csh //Act & Assert var connector = new VoucherConnector(); - connector.FinancialYearID = "1"; + connector.FinancialYearID = 1; connector.Limit = 2; var voucherResult = connector.Find(); diff --git a/FortnoxAPILibrary/Connectors/VoucherConnector.cs b/FortnoxAPILibrary/Connectors/VoucherConnector.cs index e74ffb6b..a859394d 100644 --- a/FortnoxAPILibrary/Connectors/VoucherConnector.cs +++ b/FortnoxAPILibrary/Connectors/VoucherConnector.cs @@ -16,20 +16,6 @@ public class VoucherConnector : EntityConnector - /// Use FinancialYearDate to select the financial year to use. - /// If omitted the default financial year will be selected - /// - [SearchParameter("financialyeardate")] - public string FinancialYearDate { get; set; } - - /// - /// Use FinancialYearID to select the financial year to use. - /// If omitted the default financial year will be selected - /// - [SearchParameter("financialyear")] - public string FinancialYearID { get; set; } - /// /// Use with Find() to limit the search result /// diff --git a/FortnoxAPILibrary/EntityConnector.cs b/FortnoxAPILibrary/EntityConnector.cs index a00d3fa6..27612e8b 100644 --- a/FortnoxAPILibrary/EntityConnector.cs +++ b/FortnoxAPILibrary/EntityConnector.cs @@ -35,6 +35,32 @@ public abstract class EntityConnector : BaseC /// [SearchParameter] public DateTime? LastModified { get; set; } + /// + /// Use with Find() to limit the search result. + /// Selects which financial year should be used. + /// + [SearchParameter("financialyear")] + public long? FinancialYearID { get; set; } + /// + /// Use with Find() to limit the search result. + /// Selects which financial year should be used by date + /// + [SearchParameter] + public DateTime? FinancialYearDate { get; set; } + /// + /// Use with Find() to limit the search result. + /// Defines a selection based on a start date. + /// Only available for invoices, orders, offers and vouchers + /// + [SearchParameter] + public DateTime? FromDate { get; set; } + /// + /// Use with Find() to limit the search result. + /// Defines a selection based on an end date. + /// Only available for invoices, orders, offers and vouchers + /// + [SearchParameter] + public DateTime? ToDate { get; set; } /// /// Use with Find() to limit the search result @@ -166,7 +192,12 @@ private static string GetStringValue(object value, Type type) if (type.IsEnum) return ((Enum)value).GetStringValue(); if (type == typeof(DateTime)) - return ((DateTime)value).ToString(APIConstants.DateAndTimeFormat); + { + if (((DateTime)value).Date == (DateTime)value) //Date without hours/minutes/seconds.. + return ((DateTime)value).ToString(APIConstants.DateFormat); + + return ((DateTime) value).ToString(APIConstants.DateAndTimeFormat); + } return value.ToString().ToLower(); } diff --git a/FortnoxAPILibrary/Interfaces/IConnector.cs b/FortnoxAPILibrary/Interfaces/IConnector.cs index 794d495d..efc6832e 100644 --- a/FortnoxAPILibrary/Interfaces/IConnector.cs +++ b/FortnoxAPILibrary/Interfaces/IConnector.cs @@ -20,9 +20,14 @@ public interface IConnector : IBaseConnector //TODO: Rename to IResourceConnecto public interface IEntityConnector : IConnector { //Base search params - int? Limit { get; set; } DateTime? LastModified { get; set; } + public long? FinancialYearID { get; set; } + public DateTime? FinancialYearDate { get; set; } + public DateTime? FromDate { get; set; } + public DateTime? ToDate { get; set; } + int? Page { get; set; } int? Offset { get; set; } + int? Limit { get; set; } } }