/// <summary> /// Return a XML representation of this object. /// </summary> /// <param name="OperatorEVSEDataXName">The OperatorEVSEData XML name to use.</param> /// <param name="CustomOperatorEVSEDataSerializer">A delegate to serialize custom OperatorEVSEData XML elements.</param> /// <param name="EVSEDataRecordXName">The EVSEDataRecord XML name to use.</param> /// <param name="IncludeEVSEDataRecordMetadata">Include EVSEDataRecord deltaType and lastUpdate meta data.</param> /// <param name="CustomEVSEDataRecordSerializer">A delegate to serialize custom EVSEDataRecord XML elements.</param> /// <param name="CustomAddressSerializer">A delegate to serialize custom Address XML elements.</param> /// <param name="CustomChargingFacilitySerializer">A delegate to serialize custom ChargingFacility XML elements.</param> public XElement ToXML(XName OperatorEVSEDataXName = null, CustomXMLSerializerDelegate <OperatorEVSEData> CustomOperatorEVSEDataSerializer = null, XName EVSEDataRecordXName = null, Boolean IncludeEVSEDataRecordMetadata = true, CustomXMLSerializerDelegate <EVSEDataRecord> CustomEVSEDataRecordSerializer = null, CustomXMLSerializerDelegate <Address> CustomAddressSerializer = null, CustomXMLSerializerDelegate <ChargingFacility> CustomChargingFacilitySerializer = null) { var xml = new XElement(OperatorEVSEDataXName ?? OICPNS.EVSEData + "OperatorEvseData", new XElement(OICPNS.EVSEData + "OperatorID", OperatorId.ToString()), OperatorName.IsNotNullOrEmpty() ? new XElement(OICPNS.EVSEData + "OperatorName", OperatorName) : null, EVSEDataRecords.Any() ? EVSEDataRecords.SafeSelect(evsedatarecord => evsedatarecord.ToXML(EVSEDataRecordXName, IncludeEVSEDataRecordMetadata, CustomEVSEDataRecordSerializer, CustomAddressSerializer, CustomChargingFacilitySerializer)) : null ); return(CustomOperatorEVSEDataSerializer != null ? CustomOperatorEVSEDataSerializer(this, xml) : xml); }
/// <summary> /// Return a JSON representation of this object. /// </summary> /// <param name="CustomOperatorEVSEDataSerializer">A delegate to serialize custom operator EVSE data JSON objects.</param> /// <param name="CustomEVSEDataRecordSerializer">A delegate to serialize custom EVSE data record JSON objects.</param> /// <param name="CustomAddressSerializer">A delegate to serialize custom address JSON objects.</param> /// <param name="CustomChargingFacilitySerializer">A delegate to serialize custom charging facility JSON objects.</param> /// <param name="CustomGeoCoordinatesSerializer">A delegate to serialize custom geo coordinates JSON objects.</param> /// <param name="CustomEnergySourceSerializer">A delegate to serialize custom time period JSON objects.</param> /// <param name="CustomEnvironmentalImpactSerializer">A delegate to serialize custom time period JSON objects.</param> /// <param name="CustomOpeningTimesSerializer">A delegate to serialize custom opening time JSON objects.</param> public JObject ToJSON(CustomJObjectSerializerDelegate <OperatorEVSEData> CustomOperatorEVSEDataSerializer = null, CustomJObjectSerializerDelegate <EVSEDataRecord> CustomEVSEDataRecordSerializer = null, CustomJObjectSerializerDelegate <Address> CustomAddressSerializer = null, CustomJObjectSerializerDelegate <ChargingFacility> CustomChargingFacilitySerializer = null, CustomJObjectSerializerDelegate <GeoCoordinates> CustomGeoCoordinatesSerializer = null, CustomJObjectSerializerDelegate <EnergySource> CustomEnergySourceSerializer = null, CustomJObjectSerializerDelegate <EnvironmentalImpact> CustomEnvironmentalImpactSerializer = null, CustomJObjectSerializerDelegate <OpeningTime> CustomOpeningTimesSerializer = null) { var JSON = JSONObject.Create( new JProperty("EvseDataRecord", new JArray(EVSEDataRecords.Select(evseDataRecord => evseDataRecord.ToJSON(CustomEVSEDataRecordSerializer, CustomAddressSerializer, CustomChargingFacilitySerializer, CustomGeoCoordinatesSerializer, CustomEnergySourceSerializer, CustomEnvironmentalImpactSerializer, CustomOpeningTimesSerializer)))), new JProperty("OperatorID", OperatorId.ToString()), new JProperty("OperatorName", OperatorName), CustomData?.HasValues == true ? new JProperty("CustomData", CustomData) : null ); return(CustomOperatorEVSEDataSerializer != null ? CustomOperatorEVSEDataSerializer(this, JSON) : JSON); }
/// <summary> /// Return the HashCode of this object. /// </summary> /// <returns>The HashCode of this object.</returns> public override Int32 GetHashCode() { unchecked { return(OperatorId.GetHashCode() * 5 ^ (OperatorName.IsNotNullOrEmpty() ? OperatorName.GetHashCode() : 0) * 3 ^ (EVSEDataRecords.Any() ? EVSEDataRecords.GetHashCode() : 0)); } }
/// <summary> /// Compares two operator EVSE datas for equality. /// </summary> /// <param name="OperatorEVSEData">A operator EVSE data to compare with.</param> /// <returns>True if both match; False otherwise.</returns> public Boolean Equals(OperatorEVSEData OperatorEVSEData) { if ((Object)OperatorEVSEData == null) { return(false); } return(OperatorId.Equals(OperatorEVSEData.OperatorId) && ((OperatorName == null && OperatorEVSEData.OperatorName == null) || (OperatorName != null && OperatorEVSEData.OperatorName != null && OperatorName.Equals(OperatorEVSEData.OperatorName))) && ((!EVSEDataRecords.Any() && !OperatorEVSEData.EVSEDataRecords.Any()) || (EVSEDataRecords.Any() && OperatorEVSEData.EVSEDataRecords.Any() && EVSEDataRecords.Count().Equals(OperatorEVSEData.EVSEDataRecords.Count())))); }
/// <summary> /// Return a text-representation of this object. /// </summary> public override String ToString() => String.Concat(OperatorId, OperatorName.IsNotNullOrEmpty() ? ", " + OperatorName : "", ", ", EVSEDataRecords.Count(), " EVSE data record(s)");
/// <summary> /// Return a text-representation of this object. /// </summary> public override String ToString() => String.Concat(Action, " of ", EVSEDataRecords.Count(), " EVSE data record(s)", " (", OperatorId, OperatorName != null ? " / " + OperatorName : "", ")");