예제 #1
0
        /// <summary>
        /// Create an e-mobility roaming provider.
        /// </summary>
        /// <param name="Id">The unique identification of the roaming provider.</param>
        /// <param name="Name">The offical (multi-language) name of the roaming provider.
        /// <param name="RoamingNetwork">The associated roaming network.</param>
        /// <param name="OperatorRoamingService">The attached local or remote EVSE operator roaming service.</param>
        /// <param name="eMobilityRoamingService">The attached local or remote e-mobility roaming service.</param>
        internal EMPRoamingProvider(RoamingProvider_Id Id,
                                    I18NString Name,
                                    RoamingNetwork RoamingNetwork,
                                    IeMobilityRoamingService eMobilityRoamingService)

            : base(Id, Name, RoamingNetwork)

        {
            #region Initial Checks

            if (eMobilityRoamingService == null)
            {
                throw new ArgumentNullException(nameof(eMobilityRoamingService), "The given e-mobility roaming service must not be null!");
            }

            #endregion


            this._eMobilityRoamingService = eMobilityRoamingService;


            #region Link AuthorizeStart/-Stop and SendCDR to the roaming network

            this.OnAuthorizeStartEVSE += (Timestamp,
                                          CancellationToken,
                                          EventTrackingId,
                                          OperatorId,
                                          AuthToken,
                                          EVSEId,
                                          ChargingProductId,
                                          SessionId,
                                          QueryTimeout) => RoamingNetwork.AuthorizeStart(Timestamp,
                                                                                         CancellationToken,
                                                                                         EventTrackingId,
                                                                                         OperatorId,
                                                                                         AuthToken,
                                                                                         EVSEId,
                                                                                         ChargingProductId,
                                                                                         SessionId,
                                                                                         QueryTimeout);

            this.OnAuthorizeStopEVSE += (Timestamp,
                                         CancellationToken,
                                         EventTrackingId,
                                         OperatorId,
                                         EVSEId,
                                         SessionId,
                                         AuthToken,
                                         QueryTimeout) => RoamingNetwork.AuthorizeStop(Timestamp,
                                                                                       CancellationToken,
                                                                                       EventTrackingId,
                                                                                       OperatorId,
                                                                                       SessionId,
                                                                                       AuthToken,
                                                                                       EVSEId,
                                                                                       QueryTimeout);

            this.OnChargeDetailRecord += (Timestamp,
                                          CancellationToken,
                                          EventTrackingId,
                                          ChargeDetailRecord,
                                          QueryTimeout) => RoamingNetwork.SendChargeDetailRecord(Timestamp,
                                                                                                 CancellationToken,
                                                                                                 EventTrackingId,
                                                                                                 ChargeDetailRecord,
                                                                                                 QueryTimeout);

            #endregion
        }
예제 #2
0
 public RoamingProviderAlreadyExists(RoamingProvider_Id RoamingProvider_Id,
                                     RoamingNetwork_Id RoamingNetwork_Id)
     : base("The given roaming provider identification '" + RoamingProvider_Id + "' already exists within the given '" + RoamingNetwork_Id + "' roaming network!")
 {
 }