Beispiel #1
0
        /// <summary>
        /// Return a JSON representation of this object.
        /// </summary>
        /// <param name="CustomChargingScheduleSerializer">A delegate to serialize custom charging schedule requests.</param>
        /// <param name="CustomChargingSchedulePeriodSerializer">A delegate to serialize custom charging schedule periods.</param>
        public JObject ToJSON(CustomJObjectSerializerDelegate <ChargingSchedule> CustomChargingScheduleSerializer             = null,
                              CustomJObjectSerializerDelegate <ChargingSchedulePeriod> CustomChargingSchedulePeriodSerializer = null)
        {
            var JSON = JSONObject.Create(

                Duration.HasValue
                               ? new JProperty("duration", Duration.Value)
                               : null,

                StartSchedule.HasValue
                               ? new JProperty("startSchedule", StartSchedule.Value.ToIso8601())
                               : null,

                new JProperty("chargingRateUnit", ChargingRateUnit.AsText()),

                new JProperty("chargingSchedulePeriod", ChargingSchedulePeriods.Select(value => value.ToJSON(CustomChargingSchedulePeriodSerializer))),

                Duration.HasValue
                               ? new JProperty("minChargingRate", MinChargingRate.Value.ToString("0.#"))
                               : null

                );

            return(CustomChargingScheduleSerializer != null
                       ? CustomChargingScheduleSerializer(this, JSON)
                       : JSON);
        }
Beispiel #2
0
        /// <summary>
        /// Return a XML representation of this object.
        /// </summary>
        /// <param name="XName">An alternative XML element name [default: "OCPPv1_6_CP:chargingSchedule"]</param>
        public XElement ToXML(XName XName = null)

        => new XElement(XName ?? OCPPNS.OCPPv1_6_CP + "chargingSchedule",

                        Duration.HasValue
                       ? new XElement(OCPPNS.OCPPv1_6_CP + "duration", Duration.Value)
                       : null,

                        StartSchedule.HasValue
                       ? new XElement(OCPPNS.OCPPv1_6_CP + "startSchedule", StartSchedule.Value.ToIso8601())
                       : null,

                        new XElement(OCPPNS.OCPPv1_6_CP + "chargingRateUnit", ChargingRateUnit.AsText()),

                        ChargingSchedulePeriods.Select(value => value.ToXML()),

                        Duration.HasValue
                       ? new XElement(OCPPNS.OCPPv1_6_CP + "minChargingRate", MinChargingRate.Value.ToString("0.#"))
                       : null

                        );