112 lines
4.7 KiB
C#
112 lines
4.7 KiB
C#
using System;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
namespace BeWo.Data.Security
|
|
{
|
|
/// <summary>
|
|
/// Stellt den JsonConverter für die Klasse 'ContractStatus' dar.
|
|
/// </summary>
|
|
public class BeWoToolUserCollectionJsonConverter : JsonConverter
|
|
{
|
|
public override bool CanConvert(Type objectType)
|
|
{
|
|
return objectType == typeof(BeWoToolUserCollection);
|
|
}
|
|
|
|
public override object ReadJson(JsonReader jsonReader, Type objectType, object existingValue, JsonSerializer jsonSerializer)
|
|
{
|
|
var jsonObject = JObject.Load(jsonReader);
|
|
|
|
var collection = new BeWoToolUserCollection();
|
|
|
|
var children = jsonObject.Children<JProperty>();
|
|
|
|
foreach (var jProperty in children)
|
|
{
|
|
if (jProperty.Name == "DATA")
|
|
{
|
|
if (jProperty.Value is JArray jList)
|
|
{
|
|
foreach (var jTk in jList.Children<JToken>())
|
|
{
|
|
var user = new BeWoToolUser();
|
|
|
|
collection.BeWoToolUserList.Add(user);
|
|
|
|
foreach (var jProp in jTk.Children<JProperty>())
|
|
{
|
|
|
|
|
|
switch (jProp.Name.ToLower())
|
|
{
|
|
case "useroid":
|
|
if (long.TryParse(jProp.Value.ToString(), out var coid))
|
|
{
|
|
user.UserOid = coid;
|
|
}
|
|
break;
|
|
case "employeeoid":
|
|
if (long.TryParse(jProp.Value.ToString(), out var eoid))
|
|
{
|
|
user.EmployeeOid = eoid;
|
|
}
|
|
break;
|
|
case "status":
|
|
if (int.TryParse(jProp.Value.ToString(), out var sts))
|
|
{
|
|
user.Status = sts;
|
|
}
|
|
break;
|
|
case "email":
|
|
user.EMail = jProp.Value.ToString();
|
|
break;
|
|
case "login":
|
|
user.Login = jProp.Value.ToString();
|
|
break;
|
|
case "password":
|
|
user.Password = jProp.Value.ToString();
|
|
break;
|
|
case "firstname":
|
|
user.FirstName = jProp.Value.ToString();
|
|
break;
|
|
case "lastname":
|
|
user.LastName = jProp.Value.ToString();
|
|
break;
|
|
case "chatcode":
|
|
user.ChatCode = jProp.Value.ToString();
|
|
break;
|
|
case "mobile":
|
|
user.Mobile = jProp.Value.ToString();
|
|
break;
|
|
case "isemployee":
|
|
if (int.TryParse(jProp.Value.ToString(), out var flag))
|
|
{
|
|
user.IsEmployee = flag;
|
|
}
|
|
break;
|
|
case "category":
|
|
user.Category = jProp.Value.ToString();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
return collection;
|
|
}
|
|
|
|
public override bool CanWrite => false;
|
|
|
|
public override void WriteJson(JsonWriter jsonWriter, object value, JsonSerializer jsonSerializer)
|
|
{
|
|
throw new NotImplementedException("Es werden nur Json-Daten vom Server verarbeitet, nicht aber zurückgeschickt.");
|
|
}
|
|
}
|
|
}
|