/// <summary> /// Compares two heartbeat requests for equality. /// </summary> /// <param name="SetChargingConnectorAvailabilityStatusRequest">A heartbeat request to compare with.</param> /// <returns>True if both match; False otherwise.</returns> public override Boolean Equals(SetChargingConnectorAvailabilityStatusRequest SetChargingConnectorAvailabilityStatusRequest) { if ((Object)SetChargingConnectorAvailabilityStatusRequest == null) { return(false); } return(((!TransactionId.HasValue && !SetChargingConnectorAvailabilityStatusRequest.TransactionId.HasValue) || (TransactionId.HasValue && SetChargingConnectorAvailabilityStatusRequest.TransactionId.HasValue && TransactionId.Value.Equals(SetChargingConnectorAvailabilityStatusRequest.TransactionId.Value))) && PartnerId.Equals(SetChargingConnectorAvailabilityStatusRequest.PartnerId) && OperatorId.Equals(SetChargingConnectorAvailabilityStatusRequest.OperatorId) && ChargingConnectorId.Equals(SetChargingConnectorAvailabilityStatusRequest.ChargingConnectorId) && StatusEventDate.Equals(SetChargingConnectorAvailabilityStatusRequest.StatusEventDate) && AvailabilityStatus.Equals(SetChargingConnectorAvailabilityStatusRequest.AvailabilityStatus) && ((!AvailabilityStatusUntil.HasValue && !SetChargingConnectorAvailabilityStatusRequest.AvailabilityStatusUntil.HasValue) || (AvailabilityStatusUntil.HasValue && SetChargingConnectorAvailabilityStatusRequest.AvailabilityStatusUntil.HasValue && AvailabilityStatusUntil.Value.Equals(SetChargingConnectorAvailabilityStatusRequest.AvailabilityStatusUntil.Value))) && ((!AvailabilityStatusComment.IsNeitherNullNorEmpty() && !SetChargingConnectorAvailabilityStatusRequest.AvailabilityStatusComment.IsNeitherNullNorEmpty()) || (AvailabilityStatusComment.IsNeitherNullNorEmpty() && SetChargingConnectorAvailabilityStatusRequest.AvailabilityStatusComment.IsNeitherNullNorEmpty() && AvailabilityStatusComment.Equals(SetChargingConnectorAvailabilityStatusRequest.AvailabilityStatusComment)))); }
/// <summary> /// Return the HashCode of this object. /// </summary> /// <returns>The HashCode of this object.</returns> public override Int32 GetHashCode() { unchecked { return((TransactionId.HasValue ? TransactionId.GetHashCode() * 23 : 0) ^ PartnerId.GetHashCode() * 21 ^ OperatorId.GetHashCode() * 17 ^ ChargingConnectorId.GetHashCode() * 13 ^ StatusEventDate.GetHashCode() * 11 ^ AvailabilityStatus.GetHashCode() * 7 ^ (AvailabilityStatusUntil.HasValue ? AvailabilityStatusUntil.GetHashCode() * 5 : 0) ^ (AvailabilityStatusComment.IsNeitherNullNorEmpty() ? AvailabilityStatusComment.GetHashCode() * 3 : 0)); } }
/// <summary> /// Return a XML representation of this object. /// </summary> /// <param name="CustomSetChargingConnectorAvailabilityStatusRequestSerializer">A delegate to serialize custom set ChargingConnector availability status request XML elements.</param> public XElement ToXML(CustomXMLSerializerDelegate <SetChargingConnectorAvailabilityStatusRequest> CustomSetChargingConnectorAvailabilityStatusRequestSerializer = null) { var XML = new XElement(eMIPNS.EVCIDynamic + "eMIP_ToIOP_SetChargingConnectorAvailabilityStatusRequest", TransactionId.HasValue ? new XElement(eMIPNS.EVCIDynamic + "transactionId", TransactionId.ToString()) : null, new XElement(eMIPNS.EVCIDynamic + "partnerIdType", PartnerId.Format.ToString()), new XElement(eMIPNS.EVCIDynamic + "partnerId", PartnerId.ToString()), new XElement(eMIPNS.EVCIDynamic + "operatorIdType", OperatorId.Format.ToString()), new XElement(eMIPNS.EVCIDynamic + "operatorId", OperatorId.ToString()), new XElement(eMIPNS.EVCIDynamic + "ChargingConnectorIdType", ChargingConnectorId.Format.ToString()), new XElement(eMIPNS.EVCIDynamic + "ChargingConnectorId", ChargingConnectorId.ToString()), new XElement(eMIPNS.EVCIDynamic + "statusEventDate", StatusEventDate.ToIso8601(false)), new XElement(eMIPNS.EVCIDynamic + "availabilityStatus", AvailabilityStatus.AsNumber()), AvailabilityStatusUntil.HasValue ? new XElement(eMIPNS.EVCIDynamic + "availabilityStatusUntil", AvailabilityStatusUntil.Value.ToIso8601(false)) : null, AvailabilityStatusComment.IsNeitherNullNorEmpty() ? new XElement(eMIPNS.EVCIDynamic + "availabilityStatusComment", AvailabilityStatusComment) : null ); return(CustomSetChargingConnectorAvailabilityStatusRequestSerializer != null ? CustomSetChargingConnectorAvailabilityStatusRequestSerializer(this, XML) : XML); }