/// <summary>
        /// Create a SetChargingStationAvailabilityStatus XML/SOAP request.
        /// </summary>
        /// <param name="PartnerId">The partner identification.</param>
        /// <param name="OperatorId">The operator identification.</param>
        /// <param name="ChargingStationId">The charging station identification.</param>
        /// <param name="StatusEventDate">The timestamp of the status change.</param>
        /// <param name="AvailabilityStatus">The charging station availability status.</param>
        /// <param name="TransactionId">An optional transaction identification.</param>
        /// <param name="AvailabilityStatusUntil">An optional timestamp until which the given availability status is valid.</param>
        /// <param name="AvailabilityStatusComment">An optional comment about the availability status.</param>
        ///
        /// <param name="HTTPRequest">The correlated HTTP request of this eMIP request.</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 SetChargingStationAvailabilityStatusRequest(Partner_Id PartnerId,
                                                           Operator_Id OperatorId,
                                                           ChargingStation_Id ChargingStationId,
                                                           DateTime StatusEventDate,
                                                           ChargingStationAvailabilityStatusTypes AvailabilityStatus,
                                                           Transaction_Id?TransactionId     = null,
                                                           DateTime?AvailabilityStatusUntil = null,
                                                           String AvailabilityStatusComment = null,

                                                           HTTPRequest HTTPRequest             = null,
                                                           DateTime?Timestamp                  = null,
                                                           CancellationToken?CancellationToken = null,
                                                           EventTracking_Id EventTrackingId    = null,
                                                           TimeSpan?RequestTimeout             = null)

            : base(HTTPRequest,
                   PartnerId,
                   TransactionId,
                   Timestamp,
                   CancellationToken,
                   EventTrackingId,
                   RequestTimeout)

        {
            this.OperatorId                = OperatorId;
            this.ChargingStationId         = ChargingStationId;
            this.StatusEventDate           = StatusEventDate;
            this.AvailabilityStatus        = AvailabilityStatus;
            this.AvailabilityStatusUntil   = AvailabilityStatusUntil;
            this.AvailabilityStatusComment = AvailabilityStatusComment?.Trim();
        }
예제 #2
0
        SetSessionAction(this IEMPClient EMPClient,
                         Partner_Id PartnerId,
                         Operator_Id OperatorId,
                         ServiceSession_Id ServiceSessionId,
                         SessionAction SessionAction,

                         Transaction_Id?TransactionId = null,
                         PartnerServiceSession_Id?SalePartnerSessionId = null,

                         HTTPRequest HTTPRequest             = null,
                         DateTime?Timestamp                  = null,
                         CancellationToken?CancellationToken = null,
                         EventTracking_Id EventTrackingId    = null,
                         TimeSpan?RequestTimeout             = null)


        => EMPClient.SetSessionAction(new SetSessionActionRequest(PartnerId,
                                                                  OperatorId,
                                                                  ServiceSessionId,
                                                                  SessionAction,

                                                                  TransactionId,
                                                                  SalePartnerSessionId,

                                                                  HTTPRequest,
                                                                  Timestamp,
                                                                  CancellationToken,
                                                                  EventTrackingId,
                                                                  RequestTimeout ?? EMPClient.RequestTimeout));
예제 #3
0
        /// <summary>
        /// Create a GetServiceAuthorisation XML/SOAP request.
        /// </summary>
        /// <param name="PartnerId">The partner identification.</param>
        /// <param name="OperatorId">The operator identification.</param>
        /// <param name="EVSEId">The EVSE identification.</param>
        /// <param name="UserId">The user identification.</param>
        /// <param name="RequestedServiceId">The service identification for which an authorisation is requested.</param>
        /// <param name="TransactionId">An optional transaction identification.</param>
        /// <param name="PartnerServiceSessionId">An optional partner session identification.</param>
        ///
        /// <param name="HTTPRequest">The correlated HTTP request of this eMIP request.</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 GetServiceAuthorisationRequest(Partner_Id PartnerId,
                                              Operator_Id OperatorId,
                                              EVSE_Id EVSEId,
                                              User_Id UserId,
                                              Service_Id RequestedServiceId,
                                              Transaction_Id?TransactionId = null,
                                              PartnerServiceSession_Id?PartnerServiceSessionId = null,

                                              HTTPRequest HTTPRequest             = null,
                                              DateTime?Timestamp                  = null,
                                              CancellationToken?CancellationToken = null,
                                              EventTracking_Id EventTrackingId    = null,
                                              TimeSpan?RequestTimeout             = null)

            : base(HTTPRequest,
                   PartnerId,
                   TransactionId,
                   Timestamp,
                   CancellationToken,
                   EventTrackingId,
                   RequestTimeout)

        {
            this.OperatorId              = OperatorId;
            this.EVSEId                  = EVSEId;
            this.UserId                  = UserId;
            this.RequestedServiceId      = RequestedServiceId;
            this.PartnerServiceSessionId = PartnerServiceSessionId;
        }
        /// <summary>
        /// Create a SetEVSEBusyStatus XML/SOAP request.
        /// </summary>
        /// <param name="PartnerId">The partner identification.</param>
        /// <param name="OperatorId">The operator identification.</param>
        /// <param name="EVSEId">The EVSE identification.</param>
        /// <param name="StatusEventDate">The timestamp of the status change.</param>
        /// <param name="BusyStatus">The EVSE busy status.</param>
        /// <param name="TransactionId">An optional transaction identification.</param>
        /// <param name="BusyStatusUntil">An optional timestamp until which the given busy status is valid.</param>
        /// <param name="BusyStatusComment">An optional comment about the busy status.</param>
        ///
        /// <param name="HTTPRequest">The correlated HTTP request of this eMIP request.</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 SetEVSEBusyStatusRequest(Partner_Id PartnerId,
                                        Operator_Id OperatorId,
                                        EVSE_Id EVSEId,
                                        DateTime StatusEventDate,
                                        EVSEBusyStatusTypes BusyStatus,
                                        Transaction_Id?TransactionId = null,
                                        DateTime?BusyStatusUntil     = null,
                                        String BusyStatusComment     = null,

                                        HTTPRequest HTTPRequest             = null,
                                        DateTime?Timestamp                  = null,
                                        CancellationToken?CancellationToken = null,
                                        EventTracking_Id EventTrackingId    = null,
                                        TimeSpan?RequestTimeout             = null)

            : base(HTTPRequest,
                   PartnerId,
                   TransactionId,
                   Timestamp,
                   CancellationToken,
                   EventTrackingId,
                   RequestTimeout)

        {
            this.OperatorId        = OperatorId;
            this.EVSEId            = EVSEId;
            this.StatusEventDate   = StatusEventDate;
            this.BusyStatus        = BusyStatus;
            this.BusyStatusUntil   = BusyStatusUntil;
            this.BusyStatusComment = BusyStatusComment?.Trim();
        }
        /// <summary>
        /// Create a SetSessionEventReportRequest XML/SOAP request.
        /// </summary>
        /// <param name="PartnerId">The partner identification.</param>
        /// <param name="OperatorId">The operator identification.</param>
        /// <param name="ServiceSessionId">The service session identification.</param>
        /// <param name="SessionEvent">The session event.</param>
        ///
        /// <param name="TransactionId">An optional transaction identification.</param>
        /// <param name="ExecPartnerSessionId">An optional partner service session identification.</param>
        ///
        /// <param name="HTTPRequest">The correlated HTTP request of this eMIP request.</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 SetSessionEventReportRequest(Partner_Id PartnerId,
                                            Operator_Id OperatorId,
                                            ServiceSession_Id ServiceSessionId,
                                            SessionEvent SessionEvent,

                                            Transaction_Id?TransactionId = null,
                                            PartnerServiceSession_Id?ExecPartnerSessionId = null,

                                            HTTPRequest HTTPRequest             = null,
                                            DateTime?Timestamp                  = null,
                                            CancellationToken?CancellationToken = null,
                                            EventTracking_Id EventTrackingId    = null,
                                            TimeSpan?RequestTimeout             = null)

            : base(HTTPRequest,
                   PartnerId,
                   TransactionId,
                   Timestamp,
                   CancellationToken,
                   EventTrackingId,
                   RequestTimeout)

        {
            this.OperatorId           = OperatorId;
            this.ServiceSessionId     = ServiceSessionId;
            this.SessionEvent         = SessionEvent;
            this.ExecPartnerSessionId = ExecPartnerSessionId;
        }
예제 #6
0
        GetServiceAuthorisation(this ICPOClient CPOClient,
                                Partner_Id PartnerId,
                                Operator_Id OperatorId,
                                EVSE_Id EVSEId,
                                User_Id UserId,
                                Service_Id RequestedServiceId,
                                Transaction_Id?TransactionId = null,
                                PartnerServiceSession_Id?PartnerServiceSessionId = null,

                                HTTPRequest HTTPRequest             = null,
                                DateTime?Timestamp                  = null,
                                CancellationToken?CancellationToken = null,
                                EventTracking_Id EventTrackingId    = null,
                                TimeSpan?RequestTimeout             = null)


        => CPOClient.GetServiceAuthorisation(new GetServiceAuthorisationRequest(PartnerId,
                                                                                OperatorId,
                                                                                EVSEId,
                                                                                UserId,
                                                                                RequestedServiceId,
                                                                                TransactionId,
                                                                                PartnerServiceSessionId,

                                                                                HTTPRequest,
                                                                                Timestamp,
                                                                                CancellationToken,
                                                                                EventTrackingId,
                                                                                RequestTimeout ?? CPOClient.RequestTimeout));
예제 #7
0
        SetEVSEBusyStatus(this ICPOClient CPOClient,
                          Partner_Id PartnerId,
                          Operator_Id OperatorId,
                          EVSE_Id EVSEId,
                          DateTime StatusEventDate,
                          EVSEBusyStatusTypes BusyStatus,
                          Transaction_Id?TransactionId = null,
                          DateTime?BusyStatusUntil     = null,
                          String BusyStatusComment     = null,

                          HTTPRequest HTTPRequest             = null,
                          DateTime?Timestamp                  = null,
                          CancellationToken?CancellationToken = null,
                          EventTracking_Id EventTrackingId    = null,
                          TimeSpan?RequestTimeout             = null)


        => CPOClient.SetEVSEBusyStatus(new SetEVSEBusyStatusRequest(PartnerId,
                                                                    OperatorId,
                                                                    EVSEId,
                                                                    StatusEventDate,
                                                                    BusyStatus,
                                                                    TransactionId,
                                                                    BusyStatusUntil,
                                                                    BusyStatusComment,

                                                                    HTTPRequest,
                                                                    Timestamp,
                                                                    CancellationToken,
                                                                    EventTrackingId,
                                                                    RequestTimeout ?? CPOClient.RequestTimeout));
        /// <summary>
        /// Create a SetServiceAuthorisationRequest XML/SOAP request.
        /// </summary>
        /// <param name="PartnerId">The partner identification.</param>
        /// <param name="OperatorId">The operator identification.</param>
        /// <param name="TargetOperatorId">The target operator identification.</param>
        /// <param name="EVSEId">The EVSE identification.</param>
        /// <param name="UserId">The user identification.</param>
        /// <param name="RequestedServiceId">The service identification for which an authorisation is requested.</param>
        /// <param name="ServiceSessionId">The service session identification.</param>
        /// <param name="AuthorisationValue">Whether to start or stop the charging process.</param>
        /// <param name="IntermediateCDRRequested">Whether the eMSP wishes to receive intermediate charging session records.</param>
        /// 
        /// <param name="TransactionId">An optional transaction identification.</param>
        /// <param name="UserContractIdAlias">Anonymized alias of the contract id between the end-user and the eMSP.</param>
        /// <param name="MeterLimits">Meter limits for this authorisation: The eMSP can authorise the charge but for less than x Wh or y minutes, or z euros.</param>
        /// <param name="Parameter">eMSP parameter string (reserved for future use).</param>
        /// <param name="BookingId"></param>
        /// 
        /// <param name="HTTPRequest">The correlated HTTP request of this eMIP request.</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 SetServiceAuthorisationRequest(HTTPRequest                HTTPRequest,
                                              Partner_Id                 PartnerId,
                                              Operator_Id                OperatorId,
                                              Operator_Id                TargetOperatorId,
                                              EVSE_Id                    EVSEId,
                                              User_Id                    UserId,
                                              Service_Id                 RequestedServiceId,
                                              ServiceSession_Id          ServiceSessionId,
                                              RemoteStartStopValues      AuthorisationValue,
                                              Boolean                    IntermediateCDRRequested,

                                              Transaction_Id?            TransactionId             = null,
                                              Contract_Id?               UserContractIdAlias       = null,
                                              IEnumerable<MeterReport>   MeterLimits               = null,
                                              String                     Parameter                 = null,
                                              Booking_Id?                BookingId                 = null,

                                              DateTime?                  Timestamp                 = null,
                                              CancellationToken?         CancellationToken         = null,
                                              EventTracking_Id           EventTrackingId           = null,
                                              TimeSpan?                  RequestTimeout            = null)

            : base(HTTPRequest,
                   PartnerId,
                   TransactionId,
                   Timestamp,
                   CancellationToken,
                   EventTrackingId,
                   RequestTimeout)

        {

            this.OperatorId                = OperatorId;
            this.TargetOperatorId          = TargetOperatorId;
            this.EVSEId                    = EVSEId;
            this.UserId                    = UserId;
            this.RequestedServiceId        = RequestedServiceId;
            this.ServiceSessionId          = ServiceSessionId;
            this.AuthorisationValue        = AuthorisationValue;
            this.IntermediateCDRRequested  = IntermediateCDRRequested;

            this.UserContractIdAlias       = UserContractIdAlias;
            this.MeterLimits               = MeterLimits;
            this.Parameter                 = Parameter;
            this.BookingId                 = BookingId;

        }
예제 #9
0
        SetServiceAuthorisation(this IEMPClient EMPClient,
                                Partner_Id PartnerId,
                                Operator_Id OperatorId,
                                EVSE_Id EVSEId,
                                User_Id UserId,
                                Service_Id RequestedServiceId,
                                RemoteStartStopValues AuthorisationValue,
                                Boolean IntermediateCDRRequested,

                                Transaction_Id?TransactionId = null,
                                PartnerServiceSession_Id?PartnerServiceSessionId = null,
                                Contract_Id?UserContractIdAlias       = null,
                                IEnumerable <MeterReport> MeterLimits = null,
                                String Parameter                = null,
                                Booking_Id?BookingId            = null,
                                Booking_Id?SalePartnerBookingId = null,

                                HTTPRequest HTTPRequest             = null,
                                DateTime?Timestamp                  = null,
                                CancellationToken?CancellationToken = null,
                                EventTracking_Id EventTrackingId    = null,
                                TimeSpan?RequestTimeout             = null)


        => EMPClient.SetServiceAuthorisation(new SetServiceAuthorisationRequest(PartnerId,
                                                                                OperatorId,
                                                                                EVSEId,
                                                                                UserId,
                                                                                RequestedServiceId,
                                                                                AuthorisationValue,
                                                                                IntermediateCDRRequested,

                                                                                TransactionId,
                                                                                PartnerServiceSessionId,
                                                                                UserContractIdAlias,
                                                                                MeterLimits,
                                                                                Parameter,
                                                                                BookingId,
                                                                                SalePartnerBookingId,

                                                                                HTTPRequest,
                                                                                Timestamp,
                                                                                CancellationToken,
                                                                                EventTrackingId,
                                                                                RequestTimeout ?? EMPClient.RequestTimeout));
예제 #10
0
        SendHeartbeat(this IEMPClient EMPClient,
                      Partner_Id PartnerId,
                      Operator_Id OperatorId,
                      Transaction_Id?TransactionId = null,

                      HTTPRequest HTTPRequest             = null,
                      DateTime?Timestamp                  = null,
                      CancellationToken?CancellationToken = null,
                      EventTracking_Id EventTrackingId    = null,
                      TimeSpan?RequestTimeout             = null)


        => EMPClient.SendHeartbeat(new HeartbeatRequest(PartnerId,
                                                        OperatorId,
                                                        TransactionId,

                                                        HTTPRequest,
                                                        Timestamp,
                                                        CancellationToken,
                                                        EventTrackingId,
                                                        RequestTimeout ?? EMPClient.RequestTimeout));
        /// <summary>
        /// Create a Heartbeat XML/SOAP request.
        /// </summary>
        /// <param name="PartnerId">The partner identification.</param>
        /// <param name="OperatorId">The operator identification.</param>
        /// <param name="TransactionId">An optional transaction identification.</param>
        ///
        /// <param name="HTTPRequest">The correlated HTTP request of this eMIP request.</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 HeartbeatRequest(Partner_Id PartnerId,
                                Operator_Id OperatorId,
                                Transaction_Id?TransactionId = null,

                                HTTPRequest HTTPRequest             = null,
                                DateTime?Timestamp                  = null,
                                CancellationToken?CancellationToken = null,
                                EventTracking_Id EventTrackingId    = null,
                                TimeSpan?RequestTimeout             = null)

            : base(HTTPRequest,
                   PartnerId,
                   TransactionId,
                   Timestamp,
                   CancellationToken,
                   EventTrackingId,
                   RequestTimeout)

        {
            this.OperatorId = OperatorId;
        }
예제 #12
0
        /// <summary>
        /// Create a SetChargeDetailRecord XML/SOAP request.
        /// </summary>
        /// <param name="PartnerId">The partner identification.</param>
        /// <param name="OperatorId">The operator identification.</param>
        /// <param name="ChargeDetailRecord">The charge detail record.</param>
        /// <param name="TransactionId">An optional transaction identification.</param>
        ///
        /// <param name="HTTPRequest">The correlated HTTP request of this eMIP request.</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 SetChargeDetailRecordRequest(Partner_Id PartnerId,
                                            Operator_Id OperatorId,
                                            ChargeDetailRecord ChargeDetailRecord,
                                            Transaction_Id?TransactionId = null,

                                            HTTPRequest HTTPRequest             = null,
                                            DateTime?Timestamp                  = null,
                                            CancellationToken?CancellationToken = null,
                                            EventTracking_Id EventTrackingId    = null,
                                            TimeSpan?RequestTimeout             = null)

            : base(HTTPRequest,
                   PartnerId,
                   TransactionId,
                   Timestamp,
                   CancellationToken,
                   EventTrackingId,
                   RequestTimeout)

        {
            this.OperatorId         = OperatorId;
            this.ChargeDetailRecord = ChargeDetailRecord;
        }
예제 #13
0
        SetChargeDetailRecord(this ICPOClient CPOClient,
                              Partner_Id PartnerId,
                              Operator_Id OperatorId,
                              ChargeDetailRecord ChargeDetailRecord,
                              Transaction_Id?TransactionId = null,

                              HTTPRequest HTTPRequest             = null,
                              DateTime?Timestamp                  = null,
                              CancellationToken?CancellationToken = null,
                              EventTracking_Id EventTrackingId    = null,
                              TimeSpan?RequestTimeout             = null)


        => CPOClient.SetChargeDetailRecord(new SetChargeDetailRecordRequest(PartnerId,
                                                                            OperatorId,
                                                                            ChargeDetailRecord,
                                                                            TransactionId,

                                                                            HTTPRequest,
                                                                            Timestamp,
                                                                            CancellationToken,
                                                                            EventTrackingId,
                                                                            RequestTimeout ?? CPOClient.RequestTimeout));