...
- Add the relevant fields to the database record User e.g. Postcode.
Declare an interface (e.g. INewUser) containing any number of the base type fields plus Postcode.
Code Block language c# public interface INewUser { string Email { get; set; } string Postcode { get; set; } }
Declare a class (e.g. NewUser) which inherits from User in the client code and attach it to NewUser:
Code Block language c# public class NewUser : User, INewUser { public string Postcode { get; set; } }
Configure the new type extension in Startup.cs:
Code Block language c# services.AddLynicon(options => options.UseConfiguration(Configuration.GetSection("Lynicon:Core")) .UseModule<CoreModule>() .UseModule<Storeless>(Configuration.GetSection("Lynicon:Storeless:Cache")) .UseTypeSetup(col => { col.System.Extender.AddExtensionRule(typeof(User), typeof(IUserAccessRestriction)); }) ) .AddLyniconIdentity();
The line that should be added within
Other code shown above is just to provide an example context..UseTypeSetup
iscol.System.Extender.AddExtensionRule(<original type>, <extension interface>);
All Users retrieved from calls to the Data API will now contain the Postcode field in the underlying type, which will also implement INewUser. To get the postcode of the current user, do this:
Code Block language c# var postcode = ((INewUser)LyniconSecurityManager.Current.User).Postcode;