This repository has been archived on 2023-04-02. You can view files and clone it, but cannot push or open issues or pull requests.
trainav/trainav.web/JSON/TicketResponse.cs
2022-04-29 15:01:16 +02:00

435 lines
12 KiB
C#

// <auto-generated />
//
// To parse this JSON data, add NuGet 'Newtonsoft.Json' then do:
//
// using trainav.web.JSON;
//
// var ticketResponse = TicketResponse.FromJson(jsonString);
using System;
using System.Collections.Generic;
using System.Globalization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
namespace trainav.web.JSON {
using J = JsonPropertyAttribute;
using R = Required;
using NV = NullValueHandling;
public partial class TicketResponse {
[J("?xml", NullValueHandling = NV.Ignore)]
public Xml Xml { get; set; }
[J("rporderdetails", NullValueHandling = NV.Ignore)]
public Rporderdetails Rporderdetails { get; set; }
}
public class Rporderdetails {
[J("rpheader", NullValueHandling = NV.Ignore)]
public Rpheader Rpheader { get; set; }
[J("@version", NullValueHandling = NV.Ignore)]
public string Version { get; set; }
[J("order", NullValueHandling = NV.Ignore)]
public Order Order { get; set; }
}
public class Order {
[J("@cid", NullValueHandling = NV.Ignore)]
public string Cid { get; set; }
[J("@cdt", NullValueHandling = NV.Ignore)]
public string Cdt { get; set; }
[J("schedulelist", NullValueHandling = NV.Ignore)]
public Schedulelist Schedulelist { get; set; }
[J("tcklist", NullValueHandling = NV.Ignore)]
public Tcklist Tcklist { get; set; }
[J("@sdt", NullValueHandling = NV.Ignore)]
public string Sdt { get; set; }
[J("@zweg", NullValueHandling = NV.Ignore)]
public string Zweg { get; set; }
[J("@vto", NullValueHandling = NV.Ignore)]
public string Vto { get; set; }
[J("@vfrom", NullValueHandling = NV.Ignore)]
public string Vfrom { get; set; }
[J("@ldt", NullValueHandling = NV.Ignore)]
public string Ldt { get; set; }
[J("@pg", NullValueHandling = NV.Ignore)]
public string Pg { get; set; }
[J("posinfolist", NullValueHandling = NV.Ignore)]
public Posinfolist Posinfolist { get; set; }
[J("@on", NullValueHandling = NV.Ignore)]
public string On { get; set; }
[J("txt", NullValueHandling = NV.Ignore)]
public string Txt { get; set; }
[J("@hkey", NullValueHandling = NV.Ignore)]
public string Hkey { get; set; }
[J("reslist", NullValueHandling = NV.Ignore)]
public Reslist Reslist { get; set; }
[J("@ddt", NullValueHandling = NV.Ignore)]
public string Ddt { get; set; }
[J("@version", NullValueHandling = NV.Ignore)]
public string Version { get; set; }
[J("@fkat", NullValueHandling = NV.Ignore)]
public string Fkat { get; set; }
}
public class Posinfolist {
[J("posinfo", NullValueHandling = NV.Ignore), JsonConverter(typeof(SingleOrArrayConverter<PosinfoElement>))]
public List<PosinfoElement> Posinfo { get; set; }
}
public class FluffyChildlist {
[J("posinfo", NullValueHandling = NV.Ignore), JsonConverter(typeof(SingleOrArrayConverter<PosinfoElement>))]
public List<PosinfoElement> Posinfo { get; set; }
}
public class PurplePosinfo {
[J("@state", NullValueHandling = NV.Ignore)]
public string State { get; set; }
[J("@dir", NullValueHandling = NV.Ignore)]
public string Dir { get; set; }
[J("@posnr", NullValueHandling = NV.Ignore)]
public string Posnr { get; set; }
[J("@type", NullValueHandling = NV.Ignore)]
public string Type { get; set; }
[J("@shownr", NullValueHandling = NV.Ignore)]
public string Shownr { get; set; }
[J("@dirlabel", NullValueHandling = NV.Ignore)]
public string Dirlabel { get; set; }
[J("@vfo", NullValueHandling = NV.Ignore)]
public string Vfo { get; set; }
[J("@typeinfo", NullValueHandling = NV.Ignore)]
public string Typeinfo { get; set; }
[J("@vto", NullValueHandling = NV.Ignore)]
public string Vto { get; set; }
[J("childlist", NullValueHandling = NV.Ignore)]
public FluffyChildlist Childlist { get; set; }
}
public class PurpleChildlist {
[J("posinfo", NullValueHandling = NV.Ignore), JsonConverter(typeof(SingleOrArrayConverter<PurplePosinfo>))]
public List<PurplePosinfo> Posinfo { get; set; }
}
public class PosinfoElement {
[J("@state", NullValueHandling = NV.Ignore)]
public string State { get; set; }
[J("@dir", NullValueHandling = NV.Ignore)]
public string Dir { get; set; }
[J("@posnr", NullValueHandling = NV.Ignore)]
public string Posnr { get; set; }
[J("@type", NullValueHandling = NV.Ignore)]
public string Type { get; set; }
[J("@shownr", NullValueHandling = NV.Ignore)]
public string Shownr { get; set; }
[J("@dirlabel", NullValueHandling = NV.Ignore)]
public string Dirlabel { get; set; }
[J("@vfo", NullValueHandling = NV.Ignore)]
public string Vfo { get; set; }
[J("@typeinfo", NullValueHandling = NV.Ignore)]
public string Typeinfo { get; set; }
[J("@vto", NullValueHandling = NV.Ignore)]
public string Vto { get; set; }
[J("childlist", NullValueHandling = NV.Ignore)]
public PurpleChildlist Childlist { get; set; }
}
public class Reslist {
[J("res", NullValueHandling = NV.Ignore), JsonConverter(typeof(SingleOrArrayConverter<Re>))]
public List<Re> Res { get; set; }
}
public class Re {
[J("@tid", NullValueHandling = NV.Ignore)]
public string Tid { get; set; }
[J("@posnr", NullValueHandling = NV.Ignore)]
public string Posnr { get; set; }
[J("@dt", NullValueHandling = NV.Ignore)]
public string Dt { get; set; }
[J("nvplist", NullValueHandling = NV.Ignore)]
public Nvplist Nvplist { get; set; }
[J("@cdt", NullValueHandling = NV.Ignore)]
public string Cdt { get; set; }
[J("plaetze", NullValueHandling = NV.Ignore)]
public Plaetze Plaetze { get; set; }
[J("txt", NullValueHandling = NV.Ignore)]
public string Txt { get; set; }
[J("@tn", NullValueHandling = NV.Ignore)]
public string Tn { get; set; }
}
public class Nvplist {
[J("nvp", NullValueHandling = NV.Ignore)]
public List<Nvp> Nvp { get; set; }
}
public class Nvp {
[J("@name", NullValueHandling = NV.Ignore)]
public string Name { get; set; }
[J("#text", NullValueHandling = NV.Ignore)]
public string Text { get; set; }
}
public class Plaetze {
[J("platz", NullValueHandling = NV.Ignore), JsonConverter(typeof(SingleOrArrayConverter<Platz>))]
public List<Platz> Platz { get; set; }
}
public class Platz {
[J("platznr", NullValueHandling = NV.Ignore)]
public string Platznr { get; set; }
[J("wagennr", NullValueHandling = NV.Ignore)]
public string Wagennr { get; set; }
}
public class Schedulelist {
[J("out", NullValueHandling = NV.Ignore)]
public Journey Out { get; set; }
[J("ret", NullValueHandling = NV.Ignore)]
public Journey Ret { get; set; }
}
public class Journey {
[J("txt", NullValueHandling = NV.Ignore)]
public string Txt { get; set; }
[J("@posnr", NullValueHandling = NV.Ignore)]
public string Posnr { get; set; }
[J("trainlist", NullValueHandling = NV.Ignore)]
public Trainlist Trainlist { get; set; }
}
public class Trainlist {
[J("train", NullValueHandling = NV.Ignore), JsonConverter(typeof(SingleOrArrayConverter<Train>))]
public List<Train> Train { get; set; }
}
public class Train {
[J("@tid", NullValueHandling = NV.Ignore)]
public string Tid { get; set; }
[J("@type", NullValueHandling = NV.Ignore)]
public string Type { get; set; }
[J("zugnr", NullValueHandling = NV.Ignore)]
public string Zugnummer { get; set; }
[J("arr", NullValueHandling = NV.Ignore)]
public Station Arr { get; set; }
[J("gat", NullValueHandling = NV.Ignore)]
public string Gattung { get; set; }
[J("sci", NullValueHandling = NV.Ignore)]
public string Zugklasse { get; set; }
[J("dep", NullValueHandling = NV.Ignore)]
public Station Dep { get; set; }
[J("@tn", NullValueHandling = NV.Ignore)]
public string Line { get; set; }
}
public class Station {
[J("x", NullValueHandling = NV.Ignore)]
public string X { get; set; }
[J("y", NullValueHandling = NV.Ignore)]
public string Y { get; set; }
[J("@dt", NullValueHandling = NV.Ignore)]
public string Date { get; set; }
[J("ebhf_name", NullValueHandling = NV.Ignore)]
public string EbhfName { get; set; }
[J("ebhf_nr", NullValueHandling = NV.Ignore)]
public string EbhfNr { get; set; }
[J("@t", NullValueHandling = NV.Ignore)]
public string Time { get; set; }
[J("n", NullValueHandling = NV.Ignore)]
public string Name { get; set; }
[J("nr", NullValueHandling = NV.Ignore)]
public string BhfNr { get; set; }
[J("plz", NullValueHandling = NV.Ignore)]
public string Plz { get; set; }
[J("ptf", NullValueHandling = NV.Ignore)]
public string Ptf { get; set; }
}
public class Tcklist {
[J("tck", NullValueHandling = NV.Ignore), JsonConverter(typeof(SingleOrArrayConverter<Tck>))]
public List<Tck> Tck { get; set; }
}
public class Tck {
[J("mtk", NullValueHandling = NV.Ignore)]
public Mtk Mtk { get; set; }
[J("@posnr", NullValueHandling = NV.Ignore)]
public string Posnr { get; set; }
[J("htdata", NullValueHandling = NV.Ignore)]
public Htdata Htdata { get; set; }
}
public class Htdata {
[J("ht", NullValueHandling = NV.Ignore)]
public List<Ht> Ht { get; set; }
}
public class Ht {
[J("@pos", NullValueHandling = NV.Ignore)]
public string Pos { get; set; }
[J("#text", NullValueHandling = NV.Ignore)]
public string Text { get; set; }
[J("@name", NullValueHandling = NV.Ignore)]
public string Name { get; set; }
[J("@type", NullValueHandling = NV.Ignore)]
public string Type { get; set; }
}
public class Mtk {
[J("@status", NullValueHandling = NV.Ignore)]
public string Status { get; set; }
[J("@dir", NullValueHandling = NV.Ignore)]
public string Dir { get; set; }
[J("iss", NullValueHandling = NV.Ignore)]
public string Iss { get; set; }
[J("tkey", NullValueHandling = NV.Ignore)]
public string Tkey { get; set; }
[J("bc", NullValueHandling = NV.Ignore)]
public Bc Bc { get; set; }
[J("nvplist", NullValueHandling = NV.Ignore)]
public Nvplist Nvplist { get; set; }
[J("reisender_vorname", NullValueHandling = NV.Ignore)]
public string ReisenderVorname { get; set; }
[J("reisender_nachname", NullValueHandling = NV.Ignore)]
public string ReisenderNachname { get; set; }
[J("txt", NullValueHandling = NV.Ignore)]
public string Txt { get; set; }
[J("zb", NullValueHandling = NV.Ignore)]
public string Zb { get; set; }
[J("ot_nr_hin", NullValueHandling = NV.Ignore)]
public string OtNrHin { get; set; }
}
public class Bc {
[J("rbs", NullValueHandling = NV.Ignore)]
public string Rbs { get; set; }
[J("anz", NullValueHandling = NV.Ignore)]
public string Anz { get; set; }
}
public class Rpheader {
[J("@ts", NullValueHandling = NV.Ignore)]
public string Ts { get; set; }
[J("@tnr", NullValueHandling = NV.Ignore)]
public string Tnr { get; set; }
}
public class Xml {
[J("@version", NullValueHandling = NV.Ignore)]
public string Version { get; set; }
[J("@encoding", NullValueHandling = NV.Ignore)]
public string Encoding { get; set; }
}
public partial class TicketResponse {
public static TicketResponse FromJson(string json) => JsonConvert.DeserializeObject<TicketResponse>(json, Converter.Settings);
}
internal static class Converter {
public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings {
MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
DateParseHandling = DateParseHandling.None,
Converters = {new IsoDateTimeConverter {DateTimeStyles = DateTimeStyles.AssumeUniversal}}
};
}
internal class SingleOrArrayConverter<T> : JsonConverter {
public override bool CanWrite => false;
public override bool CanConvert(Type objectType) => objectType == typeof(List<T>);
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) {
var token = JToken.Load(reader);
return token.Type == JTokenType.Array ? token.ToObject<List<T>>() : new List<T> {token.ToObject<T>()};
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) {
throw new NotImplementedException();
}
}
}