Skip to content

Commit

Permalink
LinkPickerMode is now properly serialized when using JSON.net
Browse files Browse the repository at this point in the history
By default, an enum value will be serialized to a numeric value. The mode is now serialized to a lowercase string instead - eg. "content" or "url".
  • Loading branch information
abjerner committed Sep 12, 2016
1 parent ea3da75 commit b552496
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 1 deletion.
29 changes: 29 additions & 0 deletions src/Skybrud.LinkPicker/Json/Converters/LinkPickerEnumConverter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
using System;
using Newtonsoft.Json;

namespace Skybrud.LinkPicker.Json.Converters {

public class LinkPickerEnumConverter : JsonConverter {

public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) {

if (value == null) {
writer.WriteNull();
return;
}

writer.WriteValue((value + "").ToLower());

}

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) {
throw new NotImplementedException();
}

public override bool CanConvert(Type objectType) {
return objectType == typeof(Enum);
}

}

}
6 changes: 5 additions & 1 deletion src/Skybrud.LinkPicker/LinkPickerMode.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
namespace Skybrud.LinkPicker {
using Newtonsoft.Json;
using Skybrud.LinkPicker.Json.Converters;

namespace Skybrud.LinkPicker {

/// <summary>
/// Enum describing the type of the link.
/// </summary>
[JsonConverter(typeof(LinkPickerEnumConverter))]
public enum LinkPickerMode {

/// <summary>
Expand Down
1 change: 1 addition & 0 deletions src/Skybrud.LinkPicker/Skybrud.LinkPicker.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,7 @@
<Compile Include="Grid\Converters\LinkPickerGridConverter.cs" />
<Compile Include="Grid\Values\GridControlLinkPickerValue.cs" />
<Compile Include="Grid\Config\GridEditorLinkPickerConfig.cs" />
<Compile Include="Json\Converters\LinkPickerEnumConverter.cs" />
<Compile Include="LinkPickerItem.cs" />
<Compile Include="LinkPickerList.cs" />
<Compile Include="LinkPickerMode.cs" />
Expand Down

0 comments on commit b552496

Please sign in to comment.