Skip to content

Commit

Permalink
add FieldValue to RequestFieldValues
Browse files Browse the repository at this point in the history
  • Loading branch information
lvermeulen committed Aug 5, 2018
1 parent 964e8f9 commit 9121ba3
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -1,38 +1,37 @@
using System;
using System.Collections.Generic;
using System.Linq;
using JiraServiceDesk.Net.Models.Request;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace JiraServiceDesk.Net.Models.Common
{
public class StringOrStringArrayConverter : JsonConverter
public class FieldValueConverter : JsonConverter
{
private static readonly List<Type> s_types = new List<Type> { typeof(string), typeof(IEnumerable<string>) };
private static readonly List<Type> s_types = new List<Type> { typeof(FieldValue), typeof(IEnumerable<FieldValue>) };

public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
throw new NotImplementedException();
}
{ }

public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.String)
{
var item = JToken.Load(reader);
return new List<string>(Enumerable.Repeat(item.Value<string>(), 1));
return new List<FieldValue> { new FieldValue { Value = item.Value<string>() } };
}

if (reader.TokenType == JsonToken.StartArray)
{
var item = JArray.Load(reader);
return new List<string>(item.Select(x => x.ToString()));
return new List<FieldValue>(item.Select(x => JsonConvert.DeserializeObject<FieldValue>(x.ToString())));
}

if (reader.TokenType == JsonToken.StartObject)
{
var item = JObject.Load(reader);
return new List<string>(Enumerable.Repeat(item.ToString(), 1));
return new List<FieldValue> { JsonConvert.DeserializeObject<FieldValue>(item.ToString()) };
}

return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace JiraServiceDesk.Net.Models.Request
{
public class RenderedValue
public class FieldValue
{
public string Self { get; set; }
public string Id { get; set; }
Expand Down
7 changes: 4 additions & 3 deletions src/JiraServiceDesk.Net/Models/Request/RequestFieldValue.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ public class RequestFieldValue
{
public string FieldId { get; set; }
public string Label { get; set; }
[JsonConverter(typeof(StringOrStringArrayConverter))]
public List<string> Value { get; set; }
public List<RenderedValue> RenderedValue { get; set; }
[JsonConverter(typeof(FieldValueConverter))]
public List<FieldValue> Value { get; set; }
[JsonConverter(typeof(FieldValueConverter))]
public List<FieldValue> RenderedValue { get; set; }
}
}

0 comments on commit 9121ba3

Please sign in to comment.