This short post presents snippets for publishing and consuming OData services that operate with enums.
Requirements:
.NET server-side data model
1 2 3 4 5 6 |
public enum UserType { Admin = 0, Customer = 1, Guest = 2 } |
public partial class User {
…
public UserType UserType { get; set; }
… }
Publish custom enum type through OData $metadata service – .NET server-side – Startup.cs
1 2 |
var client = new ODataConventionModelBuilder(); client.AddEnumType(typeof(UserType)); |
Define custom enum type in JayData data model – JavaScript
1 2 3 4 5 |
var UserType = $data.createEnum("JayData.Test.CommonItems.Entities.UserType", [ { name: 'Admin', value: 0 }, { name: 'Customer', value: 1 }, { name: 'Guest', value: 2 } ]) |
$data.Entity.extend(‘JayData.Test.CommonItems.Entities.User’, {
…
UserType: { type: ‘JayData.Test.CommonItems.Entities.UserType’, nullable: false },
… })
Use custom enum type in JayData – JavaScript
1 |
user.UserType = UserType.Admin |
You can read more fullstack OData 4.0 howtos by visiting the following arcticle – Fullstack OData 4.0 howto series with JayData and ASP.NET WebAPI OData