Advertisement
wofus

JSON spr

Mar 9th, 2022
1,140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 16.46 KB | None | 0 0
  1. // <auto-generated />
  2. //
  3. // To parse this JSON data, add NuGet 'Newtonsoft.Json' then do:
  4. //
  5. //    using JSON;
  6. //
  7. //    var Spritpreisrechnerat = Spritpreisrechnerat.FromJson(jsonString);
  8.  
  9. namespace JSON
  10. {
  11.     using System;
  12.     using System.Collections.Generic;
  13.  
  14.     using System.Globalization;
  15.     using Newtonsoft.Json;
  16.     using Newtonsoft.Json.Converters;
  17.  
  18.     public partial class Spritpreisrechnerat
  19.     {
  20.         [JsonProperty("id")]
  21.         public long Id { get; set; }
  22.  
  23.         [JsonProperty("name")]
  24.         public string Name { get; set; }
  25.  
  26.         [JsonProperty("location")]
  27.         public Location Location { get; set; }
  28.  
  29.         [JsonProperty("contact")]
  30.         public Contact Contact { get; set; }
  31.  
  32.         [JsonProperty("openingHours")]
  33.         public OpeningHour[] OpeningHours { get; set; }
  34.  
  35.         [JsonProperty("offerInformation")]
  36.         public OfferInformation OfferInformation { get; set; }
  37.  
  38.         [JsonProperty("paymentMethods")]
  39.         public PaymentMethods PaymentMethods { get; set; }
  40.  
  41.         [JsonProperty("paymentArrangements")]
  42.         public PaymentArrangements PaymentArrangements { get; set; }
  43.  
  44.         [JsonProperty("position")]
  45.         public long Position { get; set; }
  46.  
  47.         [JsonProperty("open")]
  48.         public bool Open { get; set; }
  49.  
  50.         [JsonProperty("distance")]
  51.         public double Distance { get; set; }
  52.  
  53.         [JsonProperty("prices")]
  54.         public Price[] Prices { get; set; }
  55.  
  56.         [JsonProperty("otherServiceOffers", NullValueHandling = NullValueHandling.Ignore)]
  57.         public string OtherServiceOffers { get; set; }
  58.     }
  59.  
  60.     public partial class Contact
  61.     {
  62.         [JsonProperty("mail", NullValueHandling = NullValueHandling.Ignore)]
  63.         public string Mail { get; set; }
  64.  
  65.         [JsonProperty("telephone", NullValueHandling = NullValueHandling.Ignore)]
  66.         public string Telephone { get; set; }
  67.  
  68.         [JsonProperty("fax", NullValueHandling = NullValueHandling.Ignore)]
  69.         public string Fax { get; set; }
  70.  
  71.         [JsonProperty("website", NullValueHandling = NullValueHandling.Ignore)]
  72.         public string Website { get; set; }
  73.     }
  74.  
  75.     public partial class Location
  76.     {
  77.         [JsonProperty("address")]
  78.         public string Address { get; set; }
  79.  
  80.         [JsonProperty("postalCode")]
  81.         [JsonConverter(typeof(ParseStringConverter))]
  82.         public long PostalCode { get; set; }
  83.  
  84.         [JsonProperty("city")]
  85.         public City City { get; set; }
  86.  
  87.         [JsonProperty("latitude")]
  88.         public double Latitude { get; set; }
  89.  
  90.         [JsonProperty("longitude")]
  91.         public double Longitude { get; set; }
  92.     }
  93.  
  94.     public partial class OfferInformation
  95.     {
  96.         [JsonProperty("service")]
  97.         public bool Service { get; set; }
  98.  
  99.         [JsonProperty("selfService")]
  100.         public bool SelfService { get; set; }
  101.  
  102.         [JsonProperty("unattended")]
  103.         public bool Unattended { get; set; }
  104.     }
  105.  
  106.     public partial class OpeningHour
  107.     {
  108.         [JsonProperty("day")]
  109.         public Day Day { get; set; }
  110.  
  111.         [JsonProperty("label")]
  112.         public Label Label { get; set; }
  113.  
  114.         [JsonProperty("order")]
  115.         public long Order { get; set; }
  116.  
  117.         [JsonProperty("from")]
  118.         public From From { get; set; }
  119.  
  120.         [JsonProperty("to")]
  121.         public To To { get; set; }
  122.     }
  123.  
  124.     public partial class PaymentArrangements
  125.     {
  126.         [JsonProperty("cooperative")]
  127.         public bool Cooperative { get; set; }
  128.  
  129.         [JsonProperty("clubCard")]
  130.         public bool ClubCard { get; set; }
  131.     }
  132.  
  133.     public partial class PaymentMethods
  134.     {
  135.         [JsonProperty("cash")]
  136.         public bool Cash { get; set; }
  137.  
  138.         [JsonProperty("debitCard")]
  139.         public bool DebitCard { get; set; }
  140.  
  141.         [JsonProperty("creditCard")]
  142.         public bool CreditCard { get; set; }
  143.  
  144.         [JsonProperty("others", NullValueHandling = NullValueHandling.Ignore)]
  145.         public string Others { get; set; }
  146.     }
  147.  
  148.     public partial class Price
  149.     {
  150.         [JsonProperty("fuelType")]
  151.         public string FuelType { get; set; }
  152.  
  153.         [JsonProperty("amount")]
  154.         public double Amount { get; set; }
  155.  
  156.         [JsonProperty("label")]
  157.         public string Label { get; set; }
  158.     }
  159.  
  160.     public enum City { Wien };
  161.  
  162.     public enum Day { Di, Do, Fe, Fr, Mi, Mo, Sa, So };
  163.  
  164.     public enum From { The0000, The0600, The0700 };
  165.  
  166.     public enum Label { Dienstag, Donnerstag, Feiertag, Freitag, Mittwoch, Montag, Samstag, Sonntag };
  167.  
  168.     public enum To { The2000, The2100, The2200, The2400 };
  169.  
  170.     public partial class Spritpreisrechnerat
  171.     {
  172.         public static Spritpreisrechnerat[] FromJson(string json) => JsonConvert.DeserializeObject<Spritpreisrechnerat[]>(json, JSON.Converter.Settings);
  173.     }
  174.  
  175.     public static class Serialize
  176.     {
  177.         public static string ToJson(this Spritpreisrechnerat[] self) => JsonConvert.SerializeObject(self, JSON.Converter.Settings);
  178.     }
  179.  
  180.     internal static class Converter
  181.     {
  182.         public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings
  183.         {
  184.             MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
  185.             DateParseHandling = DateParseHandling.None,
  186.             Converters =
  187.             {
  188.                 CityConverter.Singleton,
  189.                 DayConverter.Singleton,
  190.                 FromConverter.Singleton,
  191.                 LabelConverter.Singleton,
  192.                 ToConverter.Singleton,
  193.                 new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }
  194.             },
  195.         };
  196.     }
  197.  
  198.     internal class CityConverter : JsonConverter
  199.     {
  200.         public override bool CanConvert(Type t) => t == typeof(City) || t == typeof(City?);
  201.  
  202.         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
  203.         {
  204.             if (reader.TokenType == JsonToken.Null) return null;
  205.             var value = serializer.Deserialize<string>(reader);
  206.             if (value == "Wien")
  207.             {
  208.                 return City.Wien;
  209.             }
  210.             throw new Exception("Cannot unmarshal type City");
  211.         }
  212.  
  213.         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
  214.         {
  215.             if (untypedValue == null)
  216.             {
  217.                 serializer.Serialize(writer, null);
  218.                 return;
  219.             }
  220.             var value = (City)untypedValue;
  221.             if (value == City.Wien)
  222.             {
  223.                 serializer.Serialize(writer, "Wien");
  224.                 return;
  225.             }
  226.             throw new Exception("Cannot marshal type City");
  227.         }
  228.  
  229.         public static readonly CityConverter Singleton = new CityConverter();
  230.     }
  231.  
  232.     internal class ParseStringConverter : JsonConverter
  233.     {
  234.         public override bool CanConvert(Type t) => t == typeof(long) || t == typeof(long?);
  235.  
  236.         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
  237.         {
  238.             if (reader.TokenType == JsonToken.Null) return null;
  239.             var value = serializer.Deserialize<string>(reader);
  240.             long l;
  241.             if (Int64.TryParse(value, out l))
  242.             {
  243.                 return l;
  244.             }
  245.             throw new Exception("Cannot unmarshal type long");
  246.         }
  247.  
  248.         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
  249.         {
  250.             if (untypedValue == null)
  251.             {
  252.                 serializer.Serialize(writer, null);
  253.                 return;
  254.             }
  255.             var value = (long)untypedValue;
  256.             serializer.Serialize(writer, value.ToString());
  257.             return;
  258.         }
  259.  
  260.         public static readonly ParseStringConverter Singleton = new ParseStringConverter();
  261.     }
  262.  
  263.     internal class DayConverter : JsonConverter
  264.     {
  265.         public override bool CanConvert(Type t) => t == typeof(Day) || t == typeof(Day?);
  266.  
  267.         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
  268.         {
  269.             if (reader.TokenType == JsonToken.Null) return null;
  270.             var value = serializer.Deserialize<string>(reader);
  271.             switch (value)
  272.             {
  273.                 case "DI":
  274.                     return Day.Di;
  275.                 case "DO":
  276.                     return Day.Do;
  277.                 case "FE":
  278.                     return Day.Fe;
  279.                 case "FR":
  280.                     return Day.Fr;
  281.                 case "MI":
  282.                     return Day.Mi;
  283.                 case "MO":
  284.                     return Day.Mo;
  285.                 case "SA":
  286.                     return Day.Sa;
  287.                 case "SO":
  288.                     return Day.So;
  289.             }
  290.             throw new Exception("Cannot unmarshal type Day");
  291.         }
  292.  
  293.         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
  294.         {
  295.             if (untypedValue == null)
  296.             {
  297.                 serializer.Serialize(writer, null);
  298.                 return;
  299.             }
  300.             var value = (Day)untypedValue;
  301.             switch (value)
  302.             {
  303.                 case Day.Di:
  304.                     serializer.Serialize(writer, "DI");
  305.                     return;
  306.                 case Day.Do:
  307.                     serializer.Serialize(writer, "DO");
  308.                     return;
  309.                 case Day.Fe:
  310.                     serializer.Serialize(writer, "FE");
  311.                     return;
  312.                 case Day.Fr:
  313.                     serializer.Serialize(writer, "FR");
  314.                     return;
  315.                 case Day.Mi:
  316.                     serializer.Serialize(writer, "MI");
  317.                     return;
  318.                 case Day.Mo:
  319.                     serializer.Serialize(writer, "MO");
  320.                     return;
  321.                 case Day.Sa:
  322.                     serializer.Serialize(writer, "SA");
  323.                     return;
  324.                 case Day.So:
  325.                     serializer.Serialize(writer, "SO");
  326.                     return;
  327.             }
  328.             throw new Exception("Cannot marshal type Day");
  329.         }
  330.  
  331.         public static readonly DayConverter Singleton = new DayConverter();
  332.     }
  333.  
  334.     internal class FromConverter : JsonConverter
  335.     {
  336.         public override bool CanConvert(Type t) => t == typeof(From) || t == typeof(From?);
  337.  
  338.         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
  339.         {
  340.             if (reader.TokenType == JsonToken.Null) return null;
  341.             var value = serializer.Deserialize<string>(reader);
  342.             switch (value)
  343.             {
  344.                 case "00:00":
  345.                     return From.The0000;
  346.                 case "06:00":
  347.                     return From.The0600;
  348.                 case "07:00":
  349.                     return From.The0700;
  350.             }
  351.             throw new Exception("Cannot unmarshal type From");
  352.         }
  353.  
  354.         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
  355.         {
  356.             if (untypedValue == null)
  357.             {
  358.                 serializer.Serialize(writer, null);
  359.                 return;
  360.             }
  361.             var value = (From)untypedValue;
  362.             switch (value)
  363.             {
  364.                 case From.The0000:
  365.                     serializer.Serialize(writer, "00:00");
  366.                     return;
  367.                 case From.The0600:
  368.                     serializer.Serialize(writer, "06:00");
  369.                     return;
  370.                 case From.The0700:
  371.                     serializer.Serialize(writer, "07:00");
  372.                     return;
  373.             }
  374.             throw new Exception("Cannot marshal type From");
  375.         }
  376.  
  377.         public static readonly FromConverter Singleton = new FromConverter();
  378.     }
  379.  
  380.     internal class LabelConverter : JsonConverter
  381.     {
  382.         public override bool CanConvert(Type t) => t == typeof(Label) || t == typeof(Label?);
  383.  
  384.         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
  385.         {
  386.             if (reader.TokenType == JsonToken.Null) return null;
  387.             var value = serializer.Deserialize<string>(reader);
  388.             switch (value)
  389.             {
  390.                 case "Dienstag":
  391.                     return Label.Dienstag;
  392.                 case "Donnerstag":
  393.                     return Label.Donnerstag;
  394.                 case "Feiertag":
  395.                     return Label.Feiertag;
  396.                 case "Freitag":
  397.                     return Label.Freitag;
  398.                 case "Mittwoch":
  399.                     return Label.Mittwoch;
  400.                 case "Montag":
  401.                     return Label.Montag;
  402.                 case "Samstag":
  403.                     return Label.Samstag;
  404.                 case "Sonntag":
  405.                     return Label.Sonntag;
  406.             }
  407.             throw new Exception("Cannot unmarshal type Label");
  408.         }
  409.  
  410.         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
  411.         {
  412.             if (untypedValue == null)
  413.             {
  414.                 serializer.Serialize(writer, null);
  415.                 return;
  416.             }
  417.             var value = (Label)untypedValue;
  418.             switch (value)
  419.             {
  420.                 case Label.Dienstag:
  421.                     serializer.Serialize(writer, "Dienstag");
  422.                     return;
  423.                 case Label.Donnerstag:
  424.                     serializer.Serialize(writer, "Donnerstag");
  425.                     return;
  426.                 case Label.Feiertag:
  427.                     serializer.Serialize(writer, "Feiertag");
  428.                     return;
  429.                 case Label.Freitag:
  430.                     serializer.Serialize(writer, "Freitag");
  431.                     return;
  432.                 case Label.Mittwoch:
  433.                     serializer.Serialize(writer, "Mittwoch");
  434.                     return;
  435.                 case Label.Montag:
  436.                     serializer.Serialize(writer, "Montag");
  437.                     return;
  438.                 case Label.Samstag:
  439.                     serializer.Serialize(writer, "Samstag");
  440.                     return;
  441.                 case Label.Sonntag:
  442.                     serializer.Serialize(writer, "Sonntag");
  443.                     return;
  444.             }
  445.             throw new Exception("Cannot marshal type Label");
  446.         }
  447.  
  448.         public static readonly LabelConverter Singleton = new LabelConverter();
  449.     }
  450.  
  451.     internal class ToConverter : JsonConverter
  452.     {
  453.         public override bool CanConvert(Type t) => t == typeof(To) || t == typeof(To?);
  454.  
  455.         public override object ReadJson(JsonReader reader, Type t, object existingValue, JsonSerializer serializer)
  456.         {
  457.             if (reader.TokenType == JsonToken.Null) return null;
  458.             var value = serializer.Deserialize<string>(reader);
  459.             switch (value)
  460.             {
  461.                 case "20:00":
  462.                     return To.The2000;
  463.                 case "21:00":
  464.                     return To.The2100;
  465.                 case "22:00":
  466.                     return To.The2200;
  467.                 case "24:00":
  468.                     return To.The2400;
  469.             }
  470.             throw new Exception("Cannot unmarshal type To");
  471.         }
  472.  
  473.         public override void WriteJson(JsonWriter writer, object untypedValue, JsonSerializer serializer)
  474.         {
  475.             if (untypedValue == null)
  476.             {
  477.                 serializer.Serialize(writer, null);
  478.                 return;
  479.             }
  480.             var value = (To)untypedValue;
  481.             switch (value)
  482.             {
  483.                 case To.The2000:
  484.                     serializer.Serialize(writer, "20:00");
  485.                     return;
  486.                 case To.The2100:
  487.                     serializer.Serialize(writer, "21:00");
  488.                     return;
  489.                 case To.The2200:
  490.                     serializer.Serialize(writer, "22:00");
  491.                     return;
  492.                 case To.The2400:
  493.                     serializer.Serialize(writer, "24:00");
  494.                     return;
  495.             }
  496.             throw new Exception("Cannot marshal type To");
  497.         }
  498.  
  499.         public static readonly ToConverter Singleton = new ToConverter();
  500.     }
  501. }
  502.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement