/// <summary> /// Return the HashCode of this object. /// </summary> /// <returns>The HashCode of this object.</returns> public override Int32 GetHashCode() { unchecked { return(StationXMLId.GetHashCode()); } }
public void Check() { if (_StationId.HasValue) { return; } EVSE_Id __EVSEId; WWCP.ChargingStation_Id __StationId; // 1st: Try to use the given ChargingStationId from the XML... if (WWCP.ChargingStation_Id.TryParse(StationXMLId, out __StationId)) { _StationId = __StationId; } else if (EVSE_Id.TryParse(StationXMLId, out __EVSEId)) { _StationId = WWCP.ChargingStation_Id.Parse(WWCP.ChargingStation_Id.Parse(__EVSEId.OperatorId.ToWWCP().Value, __EVSEId.Suffix).ToString()); } else if (StationXMLId.StartsWith(_EVSEIds[0].OperatorId.ToWWCP().Value.ToString(WWCP.OperatorIdFormats.DIN), StringComparison.Ordinal)) { if (WWCP.ChargingStation_Id.TryParse(_EVSEIds[0].OperatorId.ToWWCP().Value.ToString(WWCP.OperatorIdFormats.DIN) + "S" + StationXMLId.Substring(_EVSEIds[0].OperatorId.ToWWCP().Value.ToString(WWCP.OperatorIdFormats.DIN).Length + 1), out __StationId)) { _StationId = __StationId; } } else if (StationXMLId.StartsWith(_EVSEIds[0].OperatorId.ToWWCP().Value.ToString(WWCP.OperatorIdFormats.ISO), StringComparison.Ordinal)) { if (WWCP.ChargingStation_Id.TryParse(_EVSEIds[0].OperatorId.ToWWCP().Value.ToString(WWCP.OperatorIdFormats.ISO) + "S" + StationXMLId.Substring(_EVSEIds[0].OperatorId.ToWWCP().Value.ToString(WWCP.OperatorIdFormats.ISO).Length + 1), out __StationId)) { _StationId = __StationId; } } else if (StationXMLId.StartsWith(_EVSEIds[0].OperatorId.ToWWCP().Value.ToString(WWCP.OperatorIdFormats.ISO_STAR), StringComparison.Ordinal)) { if (WWCP.ChargingStation_Id.TryParse(_EVSEIds[0].OperatorId.ToWWCP().Value.ToString(WWCP.OperatorIdFormats.ISO_STAR) + "S" + StationXMLId.Substring(_EVSEIds[0].OperatorId.ToWWCP().Value.ToString(WWCP.OperatorIdFormats.ISO_STAR).Length + 2), out __StationId)) { _StationId = __StationId; } } // 2nd: Try to use a modified StationXML Id... if (!_StationId.HasValue && StationXMLId.IsNotNullOrEmpty()) { _StationId = WWCP.ChargingStation_Id.Parse(_EVSEIds[0].OperatorId.ToWWCP().Value, InvalidCharactersRegEx.Replace(MappedCharactersRegEx.Replace(StationXMLId.ToUpper(), "*"), "").SubstringMax(50)); } // 3rd: Try to use the given EVSE Ids to find a common prefix... if (!_StationId.HasValue && StationXMLId.IsNullOrEmpty()) { _StationId = WWCP.ChargingStation_Id.Create(_EVSEIds.Select(evse => evse.ToWWCP().Value)); } if (!_StationId.HasValue) { } }