/// <summary> /// Gets the object from Json properties. /// </summary> /// <param name="reader">The <see cref="T: Newtonsoft.Json.JsonReader" /> to read from.</param> /// <returns>The object Value.</returns> internal static SafetyCheck GetFromJsonProperties(JsonReader reader) { SafetyCheck obj; var propName = reader.ReadPropertyName(); if (!propName.Equals("Kind", StringComparison.Ordinal)) { throw new JsonReaderException($"Incorrect discriminator property name {propName}, Expected discriminator property name is Kind."); } var propValue = reader.ReadValueAsString(); if (propValue.Equals("EnsureAvailability", StringComparison.Ordinal)) { obj = EnsureAvailabilitySafetyCheckConverter.GetFromJsonProperties(reader); } else if (propValue.Equals("EnsurePartitionQuorum", StringComparison.Ordinal)) { obj = EnsurePartitionQurumSafetyCheckConverter.GetFromJsonProperties(reader); } else if (propValue.Equals("EnsureSeedNodeQuorum", StringComparison.Ordinal)) { obj = SeedNodeSafetyCheckConverter.GetFromJsonProperties(reader); } else if (propValue.Equals("WaitForInbuildReplica", StringComparison.Ordinal)) { obj = WaitForInbuildReplicaSafetyCheckConverter.GetFromJsonProperties(reader); } else if (propValue.Equals("WaitForPrimaryPlacement", StringComparison.Ordinal)) { obj = WaitForPrimaryPlacementSafetyCheckConverter.GetFromJsonProperties(reader); } else if (propValue.Equals("WaitForPrimarySwap", StringComparison.Ordinal)) { obj = WaitForPrimarySwapSafetyCheckConverter.GetFromJsonProperties(reader); } else if (propValue.Equals("WaitForReconfiguration", StringComparison.Ordinal)) { obj = WaitForReconfigurationSafetyCheckConverter.GetFromJsonProperties(reader); } else { throw new InvalidOperationException("Unknown Kind."); } return(obj); }
/// <summary> /// Serializes the object to JSON. /// </summary> /// <param name="writer">The <see cref="T: Newtonsoft.Json.JsonWriter" /> to write to.</param> /// <param name="obj">The object to serialize to JSON.</param> internal static void Serialize(JsonWriter writer, SafetyCheck obj) { var kind = obj.Kind; if (kind.Equals(SafetyCheckKind.EnsureAvailability)) { EnsureAvailabilitySafetyCheckConverter.Serialize(writer, (EnsureAvailabilitySafetyCheck)obj); } else if (kind.Equals(SafetyCheckKind.EnsurePartitionQuorum)) { EnsurePartitionQurumSafetyCheckConverter.Serialize(writer, (EnsurePartitionQurumSafetyCheck)obj); } else if (kind.Equals(SafetyCheckKind.EnsureSeedNodeQuorum)) { SeedNodeSafetyCheckConverter.Serialize(writer, (SeedNodeSafetyCheck)obj); } else if (kind.Equals(SafetyCheckKind.WaitForInbuildReplica)) { WaitForInbuildReplicaSafetyCheckConverter.Serialize(writer, (WaitForInbuildReplicaSafetyCheck)obj); } else if (kind.Equals(SafetyCheckKind.WaitForPrimaryPlacement)) { WaitForPrimaryPlacementSafetyCheckConverter.Serialize(writer, (WaitForPrimaryPlacementSafetyCheck)obj); } else if (kind.Equals(SafetyCheckKind.WaitForPrimarySwap)) { WaitForPrimarySwapSafetyCheckConverter.Serialize(writer, (WaitForPrimarySwapSafetyCheck)obj); } else if (kind.Equals(SafetyCheckKind.WaitForReconfiguration)) { WaitForReconfigurationSafetyCheckConverter.Serialize(writer, (WaitForReconfigurationSafetyCheck)obj); } else { throw new InvalidOperationException("Unknown Kind."); } }