/// <summary> /// Return the HashCode of this object. /// </summary> /// <returns>The HashCode of this object.</returns> public override Int32 GetHashCode() { unchecked { return(ChargingProfileId.GetHashCode() * 31 ^ StackLevel.GetHashCode() * 29 ^ ChargingProfilePurpose.GetHashCode() * 23 ^ ChargingProfileKind.GetHashCode() * 19 ^ ChargingSchedule.GetHashCode() * 17 ^ (TransactionId != null ? TransactionId.GetHashCode() * 13 : 0) ^ (RecurrencyKind.HasValue ? RecurrencyKind.GetHashCode() * 11 : 0) ^ (ValidFrom.HasValue ? ValidFrom.GetHashCode() * 7 : 0) ^ (ValidTo.HasValue ? ValidTo.GetHashCode() * 5 : 0)); } }
/// <summary> /// Return a XML representation of this object. /// </summary> /// <param name="XName">An alternative XML element name [default: "OCPPv1_6_CP:chargingProfile"]</param> public XElement ToXML(XName XName = null) => new XElement(XName ?? OCPPNS.OCPPv1_6_CP + "chargingProfile", new XElement(OCPPNS.OCPPv1_6_CP + "chargingProfileId", ChargingProfileId.ToString()), TransactionId != null ? new XElement(OCPPNS.OCPPv1_6_CP + "transactionId", TransactionId.ToString()) : null, new XElement(OCPPNS.OCPPv1_6_CP + "stackLevel", StackLevel), new XElement(OCPPNS.OCPPv1_6_CP + "chargingProfilePurpose", XML_IO.AsText(ChargingProfilePurpose)), new XElement(OCPPNS.OCPPv1_6_CP + "chargingProfileKind", XML_IO.AsText(ChargingProfileKind)), ValidFrom.HasValue ? new XElement(OCPPNS.OCPPv1_6_CP + "validFrom", ValidFrom.Value.ToIso8601()) : null, ValidTo.HasValue ? new XElement(OCPPNS.OCPPv1_6_CP + "validTo", ValidTo.Value.ToIso8601()) : null, RecurrencyKind.HasValue ? new XElement(OCPPNS.OCPPv1_6_CP + "recurrencyKind", XML_IO.AsText(RecurrencyKind.Value)) : null, new XElement(OCPPNS.OCPPv1_6_CP + "chargingSchedule", ChargingSchedule.ToXML()) );
/// <summary> /// Compares two id tag infos for equality. /// </summary> /// <param name="ChargingProfile">An id tag info to compare with.</param> /// <returns>True if both match; False otherwise.</returns> public Boolean Equals(ChargingProfile ChargingProfile) { if ((Object)ChargingProfile == null) { return(false); } return(ChargingProfileId.Equals(ChargingProfile.ChargingProfileId) && StackLevel.Equals(ChargingProfile.StackLevel) && ChargingProfilePurpose.Equals(ChargingProfile.ChargingProfilePurpose) && ChargingProfileKind.Equals(ChargingProfile.ChargingProfileKind) && ChargingSchedule.Equals(ChargingProfile.ChargingSchedule) && ((!TransactionId.HasValue && !ChargingProfile.TransactionId.HasValue) || (TransactionId.HasValue && ChargingProfile.TransactionId.HasValue && TransactionId.Value.Equals(ChargingProfile.TransactionId.Value))) && ((!RecurrencyKind.HasValue && !ChargingProfile.RecurrencyKind.HasValue) || (RecurrencyKind.HasValue && ChargingProfile.RecurrencyKind.HasValue && RecurrencyKind.Value.Equals(ChargingProfile.RecurrencyKind.Value))) && ((!ValidFrom.HasValue && !ChargingProfile.ValidFrom.HasValue) || (ValidFrom.HasValue && ChargingProfile.ValidFrom.HasValue && ValidFrom.Value.Equals(ChargingProfile.ValidFrom.Value))) && ((!ValidTo.HasValue && !ChargingProfile.ValidTo.HasValue) || (ValidTo.HasValue && ChargingProfile.ValidTo.HasValue && ValidTo.Value.Equals(ChargingProfile.ValidTo.Value)))); }
/// <summary> /// Return a string representation of this object. /// </summary> public override String ToString() => String.Concat(ChargingProfileId != null ? ChargingProfileId.ToString() : "", ConnectorId != null ? " at " + ConnectorId : "", ChargingProfilePurpose.HasValue ? " having " + ChargingProfilePurpose.Value : "", StackLevel.HasValue ? " at " + StackLevel.Value : "");
/// <summary> /// Return the HashCode of this object. /// </summary> /// <returns>The HashCode of this object.</returns> public override Int32 GetHashCode() { unchecked { return((ChargingProfileId != null ? ChargingProfileId.GetHashCode() * 19 : 0) ^ (ConnectorId != null ? ConnectorId.GetHashCode() * 11 : 0) ^ (ChargingProfilePurpose.HasValue ? ChargingProfilePurpose.GetHashCode() * 7 : 0) ^ (StackLevel.HasValue ? StackLevel.GetHashCode() * 5 : 0)); } }
/// <summary> /// Return a XML representation of this object. /// </summary> public XElement ToXML() => new XElement(OCPPNS.OCPPv1_6_CP + "clearChargingProfileRequest", ChargingProfileId != null ? new XElement(OCPPNS.OCPPv1_6_CP + "id", ChargingProfileId.ToString()) : null, ConnectorId != null ? new XElement(OCPPNS.OCPPv1_6_CP + "connectorId", ConnectorId.ToString()) : null, ChargingProfilePurpose.HasValue ? new XElement(OCPPNS.OCPPv1_6_CP + "chargingProfilePurpose", XML_IO.AsText(ChargingProfilePurpose.Value)) : null, StackLevel.HasValue ? new XElement(OCPPNS.OCPPv1_6_CP + "stackLevel", StackLevel.Value) : null );
/// <summary> /// Return a JSON representation of this object. /// </summary> /// <param name="CustomChargingProfileSerializer">A delegate to serialize custom charging profiles.</param> /// <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 <ChargingProfile> CustomChargingProfileSerializer = null, CustomJObjectSerializerDelegate <ChargingSchedule> CustomChargingScheduleSerializer = null, CustomJObjectSerializerDelegate <ChargingSchedulePeriod> CustomChargingSchedulePeriodSerializer = null) { var JSON = JSONObject.Create( new JProperty("chargingProfileId", ChargingProfileId.ToString()), TransactionId != null ? new JProperty("transactionId", TransactionId.ToString()) : null, new JProperty("stackLevel", StackLevel), new JProperty("chargingProfilePurpose", ChargingProfilePurpose.AsText()), new JProperty("chargingProfileKind", ChargingProfileKind.AsText()), ValidFrom.HasValue ? new JProperty("validFrom", ValidFrom.Value.ToIso8601()) : null, ValidTo.HasValue ? new JProperty("validTo", ValidTo.Value.ToIso8601()) : null, RecurrencyKind.HasValue ? new JProperty("recurrencyKind", RecurrencyKind.Value.AsText()) : null, new JProperty("chargingSchedule", ChargingSchedule.ToJSON(CustomChargingScheduleSerializer, CustomChargingSchedulePeriodSerializer)) ); return(CustomChargingProfileSerializer != null ? CustomChargingProfileSerializer(this, JSON) : JSON); }
/// <summary> /// Compares two clear charging profile requests for equality. /// </summary> /// <param name="ClearChargingProfileRequest">A clear charging profile request to compare with.</param> /// <returns>True if both match; False otherwise.</returns> public override Boolean Equals(ClearChargingProfileRequest ClearChargingProfileRequest) { if ((Object)ClearChargingProfileRequest == null) { return(false); } return(((ChargingProfileId == null && ClearChargingProfileRequest.ChargingProfileId == null) || (ChargingProfileId != null && ClearChargingProfileRequest.ChargingProfileId != null && ChargingProfileId.Equals(ClearChargingProfileRequest.ChargingProfileId))) && ((ConnectorId == null && ClearChargingProfileRequest.ConnectorId == null) || (ConnectorId != null && ClearChargingProfileRequest.ConnectorId != null && ConnectorId.Equals(ClearChargingProfileRequest.ConnectorId))) && ((!ChargingProfilePurpose.HasValue && !ClearChargingProfileRequest.ChargingProfilePurpose.HasValue) || (ChargingProfilePurpose.HasValue && ClearChargingProfileRequest.ChargingProfilePurpose.HasValue && ChargingProfilePurpose.Value.Equals(ClearChargingProfileRequest.ChargingProfilePurpose.Value))) && ((!StackLevel.HasValue && !ClearChargingProfileRequest.StackLevel.HasValue) || (StackLevel.HasValue && ClearChargingProfileRequest.StackLevel.HasValue && StackLevel.Value.Equals(ClearChargingProfileRequest.StackLevel.Value)))); }