This project contains a Portable Class Library containing a typed .NET client gateway for accessing LawPanel's Firms REST API.
- Small, typed, message-based API uses only clean DTO's
- Portable profile available supporting .NET 4.5, ASP.NET Core 1.0, Windows 8, Xamarin.Android, Xamarin.iOS clients
Install from NuGet with:
PM> Install-Package LawPanel.ApiClient.DotNet
Includes Portable Version (.NET 4.5, ASP.NET Core 1.0, Windows 8, Xamarin.Android, Xamarin.iOS)
Requires a registered LawPanel API Key, e.g:
var lawpanel = new LawPanelClient("8a5536dc-6d34-4f4a-8cac-a67201481ca0");Some API methods requires, in addition to the API Key, the authentication at level user.
So, you can call the constructor as below:
var lawpanel = new LawPanelClient("8a5536dc-6d34-4f4a-8cac-a67201481ca0","user@domain.ext","password");Request and return DTO's are just clean POCO's, e.g:
public class SearchDto : Dto, IIdentifiableDto
{
public string Id { get; set; }
public string SearchTerm { get; set; }
public string Classes { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
public int Score { get; set; }
public string Weightings { get; set; }
public SearchType Type { get; set; }
public TrademarkRegistry Registry { get; set; }
public SearchStatus Status { get; set; }
public string StatusText { get; set; }
}These API examples follows LawPanel's Firm API Documentation.
If you are getting lists of entities using the READ methods (i.e. ReadSearchClasses) can filter results using the optional parameters skip and take.
By example, to skip the first 5 search classes and get the next 10:
var searchClasses = lawpanel.ReadSearchClasses(5, 10);
If you do not specify these parameters, will receive all entities: the API client will execute all calls required to get all entities.
You can set the order for the results specifying the field names and the order direction. By example:
var searchClasses = lawpanel.ReadSearchClasses(order: new List<ColumnOrder> {
new ColumnOrder { Name = "name", Direction = OrderDirection.Desc }
});
Will returns all search classes ordered by the field name in descending ordering.
Important: all field names should be writen with the snake_case convention.
By example, if the field name is Name should be name, if it is SearchClasses you should write it as search_classes, etc.
var search = lawpanel.CreateSearch(new SearchQuery
{
Classes = "3,25,15",
Registry = "UK",
SearchTerm = "lawpanel"
});var searchStatus = lawpanel.GetStatus(search.Id);