Good news for Sharepoint developers who use Camlex library: new versions are released both for server and client object models. For client object model separate packages are available for Sharepoint online and on-premise: https://www.nuget.org/account/Packages:
Package | Version | Description |
Camlex.NET.dll | 5.2.0 | Server object model (on-prem) |
Camlex.Client.dll | 4.1.0 | Client object model (SP online) |
Camlex.Client.2013 | 4.1.0 | Client object model (SP 2013 on-prem) |
Camlex.Client.2016 | 4.1.0 | Client object model (SP 2016 on-prem) |
Camlex.Client.2019 | 4.1.0 | Client object model (SP 2019 on-prem) |
In this release 2 new features were added: support for Membership element (many developers requested it so finally it is out) and OffsetDays. Main credits for this release go to Ivan Russo who made actual work with very good quality so I only needed validate PR, accept it and add few more unit tests. Then I merged new features to the client branch which keeps source code for client object model version (nowdays it is done manually as there are quite many changes between server and client object model versions).
1. Membership element support
Membership element allows to create CAML queries using different membership conditions. The following examples show how it can be done now with Camlex:
// SPWeb.AllUsers var caml = Camlex.Query().Where(x => Camlex.Membership( x["Field"], new Camlex.SPWebAllUsers())).ToString(); var expected = "" + " "; // SPGroup var caml = Camlex.Query().Where(x => Camlex.Membership( x["Field"], new Camlex.SPGroup(3))).ToString(); var expected = "" + " " + "" + " " + " "; // SPWeb.Groups var caml = Camlex.Query().Where(x => Camlex.Membership( x["Field"], new Camlex.SPWebGroups())).ToString(); var expected = "" + " " + "" + " " + " "; // CurrentUserGroups var caml = Camlex.Query().Where(x => Camlex.Membership( x["Field"], new Camlex.CurrentUserGroups())).ToString(); var expected = "" + " " + "" + " " + " "; // SPWeb.Users var caml = Camlex.Query().Where(x => Camlex.Membership( x["Field"], new Camlex.SPWebUsers())).ToString(); var expected = "" + " " + "" + " " + " ";" + " " + "" + "
2. OffsetDays support
OffsetDays attribute is used with Today element and allows to add or subtract number of days from today for constructing dynamic CAML queries based on current datetime offset. The following example shows how it can be done with Camlex:
string caml = Camlex.Query().Where(x => x["Created"] > ((DataTypes.DateTime)Camlex.Today).OffsetDays(-1)).ToString(); const string expected = "" + " ";" + " " + "" + " " + " " + "" + "
Thank you for using Camlex and stay tuned for the further improvements.