This repository has been archived on 2022-11-03. You can view files and clone it, but cannot push or open issues or pull requests.
DevOpsOpenHack/support/simulator/Simulator.DataStore.API/DataObjects/User.cs

104 lines
3.0 KiB
C#
Raw Normal View History

2022-11-03 20:41:13 +00:00
namespace Simulator.DataObjects
{
using Newtonsoft.Json;
using System;
public partial class User //: BaseDataObject
{
[JsonProperty("id")]
public Guid Id { get; set; }
[JsonProperty("firstName")]
public string FirstName { get; set; }
[JsonProperty("lastName")]
[JsonConverter(typeof(ParseStringConverter))]
public long LastName { get; set; }
[JsonProperty("userId")]
public string UserId { get; set; }
[JsonProperty("profilePictureUri")]
public string ProfilePictureUri { get; set; }
[JsonProperty("rating")]
public long Rating { get; set; }
[JsonProperty("ranking")]
public long Ranking { get; set; }
[JsonProperty("totalDistance")]
public double TotalDistance { get; set; }
[JsonProperty("totalTrips")]
public long TotalTrips { get; set; }
[JsonProperty("totalTime")]
public long TotalTime { get; set; }
[JsonProperty("hardStops")]
public long HardStops { get; set; }
[JsonProperty("hardAccelerations")]
public long HardAccelerations { get; set; }
[JsonProperty("fuelConsumption")]
public long FuelConsumption { get; set; }
[JsonProperty("maxSpeed")]
public long MaxSpeed { get; set; }
[JsonProperty("version")]
public string Version { get; set; }
[JsonProperty("createdAt")]
public DateTime CreatedAt { get; set; }
[JsonProperty("updatedAt")]
public DateTime UpdatedAt { get; set; }
[JsonProperty("deleted")]
public bool Deleted { get; set; }
}
public partial class User
{
public static User FromJson(string json) => JsonConvert.DeserializeObject<User>(json, Converter.Settings);
}
public static class UserSerializer
{
public static string ToJson(this User self) => JsonConvert.SerializeObject(self, Converter.Settings);
}
internal class ParseStringConverter : JsonConverter
{
public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?);
public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.Null) return null;
var value = serializer.Deserialize<string>(reader);
long l;
if (Int64.TryParse(value, out l))
{
return l;
}
throw new Exception("Cannot unmarshal type long");
}
public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
{
if (untypedValue == null)
{
serializer.Serialize(writer, null);
return;
}
var value = (long)untypedValue;
serializer.Serialize(writer, value.ToString());
return;
}
public static readonly ParseStringConverter Singleton = new ParseStringConverter();
}
}