Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Add the relevant fields to the database record User e.g. Postcode.
  2. Declare an interface (e.g. INewUser) containing any number of the base type fields plus Postcode.

    Code Block
    languagec#
    public interface INewUser
    {
    	string Email { get; set; }
    	string Postcode { get; set; }
    }


  3. Declare a class (e.g. NewUser) which inherits from User in the client code and attach it to NewUser:

    Code Block
    languagec#
    public class NewUser : User, INewUser
    {
    	public string Postcode { get; set; }
    }

     

  4. Configure the new type extension in Startup.cs:

    Code Block
    languagec#
    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 .UseTypeSetup is col.System.Extender.AddExtensionRule(<original type>, <extension interface>);

    Other code shown above is just to provide an example context.

  5. 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
    languagec#
    var postcode = ((INewUser)LyniconSecurityManager.Current.User).Postcode;


  6. If you extend the User record like this, the User Management screen will show the new field which you can now use as normal.