/// <summary> /// Create an OICP PullEVSEStatus XML/SOAP request. /// </summary> /// <param name="ProviderId">The unique identification of the EVSP.</param> /// <param name="SearchCenter">An optional geo coordinate of the search center.</param> /// <param name="DistanceKM">An optional search distance relative to the search center.</param> /// <param name="EVSEStatusFilter">An optional EVSE status as filter criteria.</param> /// /// <param name="Timestamp">The optional timestamp of the request.</param> /// <param name="CancellationToken">An optional token to cancel this request.</param> /// <param name="EventTrackingId">An optional event tracking identification for correlating this request with other events.</param> /// <param name="RequestTimeout">An optional timeout for this request.</param> public PullEVSEStatusRequest(Provider_Id ProviderId, GeoCoordinate?SearchCenter = null, Single DistanceKM = 0f, EVSEStatusTypes?EVSEStatusFilter = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) : base(Timestamp, CancellationToken, EventTrackingId, RequestTimeout) { #region Initial checks if (ProviderId == null) { throw new ArgumentNullException(nameof(ProviderId), "The given e-mobility provider identification must not be null!"); } #endregion this.ProviderId = ProviderId; this.SearchCenter = SearchCenter; this.DistanceKM = DistanceKM; this.EVSEStatusFilter = EVSEStatusFilter; }
AuthorizeRemoteStop(this IEMPClient EMPClient, Provider_Id ProviderId, EVSE_Id EVSEId, Session_Id SessionId, CPOPartnerSession_Id?CPOPartnerSessionId = null, EMPPartnerSession_Id?EMPPartnerSessionId = null, JObject CustomData = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) => EMPClient.AuthorizeRemoteStop( new AuthorizeRemoteStopRequest( ProviderId, EVSEId, SessionId, CPOPartnerSessionId, EMPPartnerSessionId, CustomData, Timestamp, CancellationToken, EventTrackingId, RequestTimeout ?? EMPClient.RequestTimeout));
/// <summary> /// Create an OICP AuthorizeRemoteReservationStart XML/SOAP request. /// </summary> /// <param name="ProviderId">An e-mobility provider identification.</param> /// <param name="EVSEId">An EVSE identification.</param> /// <param name="Identification">An identification, e.g. an electric vehicle contract identification.</param> /// <param name="SessionId">An optional charging session identification.</param> /// <param name="CPOPartnerSessionId">An optional CPO partner session identification.</param> /// <param name="EMPPartnerSessionId">An optional EMP partner session identification.</param> /// <param name="PartnerProductId">An optional partner product identification.</param> /// <param name="Duration">The duration of the reservation.</param> /// /// <param name="Timestamp">The optional timestamp of the request.</param> /// <param name="CancellationToken">An optional token to cancel this request.</param> /// <param name="EventTrackingId">An optional event tracking identification for correlating this request with other events.</param> /// <param name="RequestTimeout">An optional timeout for this request.</param> public AuthorizeRemoteReservationStartRequest(Provider_Id ProviderId, EVSE_Id EVSEId, Identification Identification, Session_Id?SessionId = null, CPOPartnerSession_Id?CPOPartnerSessionId = null, EMPPartnerSession_Id?EMPPartnerSessionId = null, PartnerProduct_Id?PartnerProductId = null, TimeSpan?Duration = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) : base(Timestamp, CancellationToken, EventTrackingId, RequestTimeout) { this.ProviderId = ProviderId; this.EVSEId = EVSEId; this.Identification = Identification; this.SessionId = SessionId; this.CPOPartnerSessionId = CPOPartnerSessionId; this.EMPPartnerSessionId = EMPPartnerSessionId; this.PartnerProductId = PartnerProductId; this.Duration = Duration; }
/// <summary> /// Create an OICP PullEVSEStatusByOperatorId XML/SOAP request. /// </summary> /// <param name="ProviderId">The unique identification of the EVSP.</param> /// <param name="OperatorIds">An enumeration of up to 100 operator identifications to query.</param> /// /// <param name="Timestamp">The optional timestamp of the request.</param> /// <param name="CancellationToken">An optional token to cancel this request.</param> /// <param name="EventTrackingId">An optional event tracking identification for correlating this request with other events.</param> /// <param name="RequestTimeout">An optional timeout for this request.</param> public PullEVSEStatusByOperatorIdRequest(Provider_Id ProviderId, IEnumerable <Operator_Id> OperatorIds, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) : base(Timestamp, CancellationToken, EventTrackingId, RequestTimeout) { #region Initial checks if (ProviderId == null) { throw new ArgumentNullException(nameof(ProviderId), "The given e-mobility provider identification must not be null!"); } if (OperatorIds.IsNullOrEmpty()) { throw new ArgumentNullException(nameof(OperatorIds), "The given enumeration of operator identifications must not be null!"); } #endregion this.ProviderId = ProviderId; this.OperatorIds = OperatorIds; }
AuthorizeRemoteReservationStart(this IEMPClient EMPClient, Provider_Id ProviderId, EVSE_Id EVSEId, Identification Identification, Session_Id?SessionId = null, CPOPartnerSession_Id?CPOPartnerSessionId = null, EMPPartnerSession_Id?EMPPartnerSessionId = null, PartnerProduct_Id?PartnerProductId = null, TimeSpan?Duration = null, JObject CustomData = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) => EMPClient.AuthorizeRemoteReservationStart( new AuthorizeRemoteReservationStartRequest( ProviderId, EVSEId, Identification, SessionId, CPOPartnerSessionId, EMPPartnerSessionId, PartnerProductId, Duration, CustomData, Timestamp, CancellationToken, EventTrackingId, RequestTimeout ?? EMPClient.RequestTimeout));
AuthorizeRemoteStart(this ICentralClient ICentralClient, Provider_Id ProviderId, EVSE_Id EVSEId, Identification Identification, Session_Id?SessionId = null, CPOPartnerSession_Id?CPOPartnerSessionId = null, EMPPartnerSession_Id?EMPPartnerSessionId = null, PartnerProduct_Id?PartnerProductId = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) => ICentralClient.AuthorizeRemoteStart(new EMP.AuthorizeRemoteStartRequest(ProviderId, EVSEId, Identification, SessionId, CPOPartnerSessionId, EMPPartnerSessionId, PartnerProductId, Timestamp, CancellationToken, EventTrackingId, RequestTimeout ?? ICentralClient.RequestTimeout));
PullEVSEData(this IEMPClient EMPClient, Provider_Id ProviderId, DateTime?LastCall = null, IEnumerable <Operator_Id> OperatorIdFilter = null, IEnumerable <Country> CountryCodeFilter = null, IEnumerable <AccessibilityTypes> AccessibilityFilter = null, IEnumerable <AuthenticationModes> AuthenticationModeFilter = null, IEnumerable <CalibrationLawDataAvailabilities> CalibrationLawDataAvailabilityFilter = null, Boolean?RenewableEnergyFilter = null, Boolean?IsHubjectCompatibleFilter = null, Boolean?IsOpen24HoursFilter = null, GeoCoordinates?SearchCenter = null, Single?DistanceKM = null, GeoCoordinatesFormats?GeoCoordinatesResponseFormat = GeoCoordinatesFormats.DecimalDegree, UInt32?Page = null, UInt32?Size = null, IEnumerable <String> SortOrder = null, JObject CustomData = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) => EMPClient.PullEVSEData( new PullEVSEDataRequest( ProviderId, LastCall, OperatorIdFilter, CountryCodeFilter, AccessibilityFilter, AuthenticationModeFilter, CalibrationLawDataAvailabilityFilter, RenewableEnergyFilter, IsHubjectCompatibleFilter, IsOpen24HoursFilter, SearchCenter, DistanceKM, GeoCoordinatesResponseFormat, Page, Size, SortOrder, CustomData, Timestamp, CancellationToken, EventTrackingId, RequestTimeout ?? EMPClient.RequestTimeout));
GetChargeDetailRecords(this IEMPClient IEMPClient, Provider_Id ProviderId, DateTime From, DateTime To, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) => IEMPClient.GetChargeDetailRecords(new GetChargeDetailRecordsRequest(ProviderId, From, To, Timestamp, CancellationToken, EventTrackingId, RequestTimeout ?? IEMPClient.RequestTimeout));
/// <summary> /// Create an OICP GetChargeDetailRecords XML/SOAP request. /// </summary> /// <param name="ProviderId">An e-mobility provider identification.</param> /// <param name="From">The starting time.</param> /// <param name="To">The end time.</param> /// /// <param name="Timestamp">The optional timestamp of the request.</param> /// <param name="CancellationToken">An optional token to cancel this request.</param> /// <param name="EventTrackingId">An optional event tracking identification for correlating this request with other events.</param> /// <param name="RequestTimeout">An optional timeout for this request.</param> public GetChargeDetailRecordsRequest(Provider_Id ProviderId, DateTime From, DateTime To, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) : base(Timestamp, CancellationToken, EventTrackingId, RequestTimeout) { this.ProviderId = ProviderId; this.From = From; this.To = To; }
PushAuthenticationData(this IEMPClient IEMPClient, IEnumerable <Identification> AuthorizationIdentifications, Provider_Id ProviderId, ActionTypes Action = ActionTypes.fullLoad, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) => IEMPClient.PushAuthenticationData(new PushAuthenticationDataRequest(new ProviderAuthenticationData(ProviderId, AuthorizationIdentifications), Action, Timestamp, CancellationToken, EventTrackingId, RequestTimeout ?? IEMPClient.RequestTimeout));
PullEVSEStatusByOperatorId(this IEMPClient EMPClient, Provider_Id ProviderId, IEnumerable <Operator_Id> OperatorIds, JObject CustomData = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) => EMPClient.PullEVSEStatusByOperatorId( new PullEVSEStatusByOperatorIdRequest( ProviderId, OperatorIds, CustomData, Timestamp, CancellationToken, EventTrackingId, RequestTimeout ?? EMPClient.RequestTimeout));
/// <summary> /// Create an OICP AuthorizeRemoteStopRequest XML/SOAP request. /// </summary> /// <param name="SessionId">A charging session identification.</param> /// <param name="ProviderId">An e-mobility provider identification.</param> /// <param name="EVSEId">The EVSE identification.</param> /// <param name="CPOPartnerSessionId">An optional CPO partner session identification.</param> /// <param name="EMPPartnerSessionId">An optional EMP partner session identification.</param> /// /// <param name="Timestamp">The optional timestamp of the request.</param> /// <param name="CancellationToken">An optional token to cancel this request.</param> /// <param name="EventTrackingId">An optional event tracking identification for correlating this request with other events.</param> /// <param name="RequestTimeout">An optional timeout for this request.</param> public AuthorizeRemoteStopRequest(Session_Id SessionId, Provider_Id ProviderId, EVSE_Id EVSEId, CPOPartnerSession_Id?CPOPartnerSessionId = null, EMPPartnerSession_Id?EMPPartnerSessionId = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) : base(Timestamp, CancellationToken, EventTrackingId, RequestTimeout) { this.SessionId = SessionId; this.ProviderId = ProviderId; this.EVSEId = EVSEId; this.CPOPartnerSessionId = CPOPartnerSessionId; this.EMPPartnerSessionId = EMPPartnerSessionId; }
ReservationStop(this IEMPClient IEMPClient, Session_Id SessionId, Provider_Id ProviderId, EVSE_Id EVSEId, CPOPartnerSession_Id?CPOPartnerSessionId = null, EMPPartnerSession_Id?EMPPartnerSessionId = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) => IEMPClient.AuthorizeRemoteReservationStop(new AuthorizeRemoteReservationStopRequest(SessionId, ProviderId, EVSEId, CPOPartnerSessionId, EMPPartnerSessionId, Timestamp, CancellationToken, EventTrackingId, RequestTimeout ?? IEMPClient.RequestTimeout));
/// <summary> /// Create an OICP PullEVSEData XML/SOAP request. /// The request might either have none, 'SearchCenter + DistanceKM' or 'LastCall' parameters. /// Because of limitations at Hubject the SearchCenter and LastCall parameters can not be used at the same time! /// </summary> /// <param name="ProviderId">The unique identification of the EVSP.</param> /// <param name="SearchCenter">An optional geo coordinate of the search center.</param> /// <param name="DistanceKM">An optional search distance relative to the search center.</param> /// <param name="LastCall">An optional timestamp of the last call. Cannot be combined with 'SearchCenter'.</param> /// <param name="GeoCoordinatesResponseFormat">An optional response format for representing geo coordinates.</param> /// <param name="OperatorIdFilter">Only return EVSEs belonging to the given optional enumeration of EVSE operators.</param> /// <param name="CountryCodeFilter">An optional enumeration of countries whose EVSE's a provider wants to retrieve.</param> /// /// <param name="Timestamp">The optional timestamp of the request.</param> /// <param name="CancellationToken">An optional token to cancel this request.</param> /// <param name="EventTrackingId">An optional event tracking identification for correlating this request with other events.</param> /// <param name="RequestTimeout">An optional timeout for this request.</param> public PullEVSEDataRequest(Provider_Id ProviderId, GeoCoordinate?SearchCenter = null, Single DistanceKM = 0f, DateTime?LastCall = null, GeoCoordinatesResponseFormats?GeoCoordinatesResponseFormat = GeoCoordinatesResponseFormats.DecimalDegree, IEnumerable <Operator_Id> OperatorIdFilter = null, IEnumerable <Country> CountryCodeFilter = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) : base(Timestamp, CancellationToken, EventTrackingId, RequestTimeout) { #region Initial checks if (ProviderId == null) { throw new ArgumentNullException(nameof(ProviderId), "The given e-mobility provider identification must not be null!"); } #endregion this.ProviderId = ProviderId; this.SearchCenter = SearchCenter; this.DistanceKM = DistanceKM; this.LastCall = LastCall; this._OperatorIdFilter = OperatorIdFilter != null ? new HashSet <Operator_Id>(OperatorIdFilter) : new HashSet <Operator_Id>(); this._CountryCodeFilter = CountryCodeFilter != null ? new HashSet <Country> (CountryCodeFilter) : new HashSet <Country>(); this.GeoCoordinatesResponseFormat = GeoCoordinatesResponseFormat ?? GeoCoordinatesResponseFormats.DecimalDegree; }
GetChargeDetailRecords(this IEMPClient EMPClient, Provider_Id ProviderId, DateTime From, DateTime To, IEnumerable <Session_Id> SessionIds = null, IEnumerable <Operator_Id> OperatorIds = null, Boolean?CDRForwarded = null, UInt32?Page = null, UInt32?Size = null, IEnumerable <String> SortOrder = null, JObject CustomData = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) => EMPClient.GetChargeDetailRecords( new GetChargeDetailRecordsRequest( ProviderId, From, To, SessionIds, OperatorIds, CDRForwarded, Page, Size, SortOrder, CustomData, Timestamp, CancellationToken, EventTrackingId, RequestTimeout ?? EMPClient.RequestTimeout));
PullEVSEStatus(this IEMPClient EMPClient, Provider_Id ProviderId, GeoCoordinates?SearchCenter = null, Single?DistanceKM = null, EVSEStatusTypes?EVSEStatusFilter = null, JObject CustomData = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null) => EMPClient.PullEVSEStatus( new PullEVSEStatusRequest( ProviderId, SearchCenter, DistanceKM, EVSEStatusFilter, CustomData, Timestamp, CancellationToken, EventTrackingId, RequestTimeout ?? EMPClient.RequestTimeout));
/// <summary> /// Try to parse the given XML representation of a GetServiceAuthorisation response. /// </summary> /// <param name="Request">The GetServiceAuthorisation request leading to this response.</param> /// <param name="GetServiceAuthorisationResponseXML">The XML to parse.</param> /// <param name="GetServiceAuthorisationResponse">The parsed GetServiceAuthorisation response.</param> /// <param name="CustomSendGetServiceAuthorisationResponseParser">An optional delegate to parse custom GetServiceAuthorisationResponse XML elements.</param> /// <param name="CustomMeterReportParser">An optional delegate to parse custom MeterReport XML elements.</param> /// <param name="HTTPResponse">The correlated HTTP response of this eMIP response.</param> /// <param name="OnException">An optional delegate called whenever an exception occured.</param> public static Boolean TryParse(GetServiceAuthorisationRequest Request, XElement GetServiceAuthorisationResponseXML, out GetServiceAuthorisationResponse GetServiceAuthorisationResponse, CustomXMLParserDelegate <GetServiceAuthorisationResponse> CustomSendGetServiceAuthorisationResponseParser = null, CustomXMLParserDelegate <MeterReport> CustomMeterReportParser = null, HTTPResponse HTTPResponse = null, OnExceptionDelegate OnException = null) { try { GetServiceAuthorisationResponse = new GetServiceAuthorisationResponse( Request, GetServiceAuthorisationResponseXML.MapValueOrFail("transactionId", Transaction_Id.Parse), GetServiceAuthorisationResponseXML.MapValueOrFail("authorisationValue", ConversionMethods.AsAuthorisationValue), GetServiceAuthorisationResponseXML.MapValueOrFail("serviceSessionId", ServiceSession_Id.Parse), GetServiceAuthorisationResponseXML.MapBooleanOrFail("intermediateCDRRequested"), GetServiceAuthorisationResponseXML.MapValueOrFail("requestStatus", RequestStatus.Parse), GetServiceAuthorisationResponseXML.MapValueOrNullable("salePartnerOperatorId", s => Provider_Id.Parse(s.Replace("*", "-"))), GetServiceAuthorisationResponseXML.MapValueOrNullable("userContractIdAlias", Contract_Id.Parse), GetServiceAuthorisationResponseXML.MapElements("meterLimitList", "meterReport", s => MeterReport.Parse(s, CustomMeterReportParser, OnException)), GetServiceAuthorisationResponseXML.MapValueOrNull("parameter"), HTTPResponse ); if (CustomSendGetServiceAuthorisationResponseParser != null) { GetServiceAuthorisationResponse = CustomSendGetServiceAuthorisationResponseParser(GetServiceAuthorisationResponseXML, GetServiceAuthorisationResponse); } return(true); } catch (Exception e) { OnException?.Invoke(DateTime.UtcNow, GetServiceAuthorisationResponseXML, e); GetServiceAuthorisationResponse = null; return(false); } }