/// <summary>
        /// Create a new abstract authorize stop result.
        /// </summary>
        /// <param name="AuthorizatorId">The identification of the authorizing entity.</param>
        /// <param name="Result">The authorize start result type.</param>
        /// <param name="SessionId">The optional charging session identification, when the authorize start operation was successful.</param>
        ///
        /// <param name="ProviderId">An optional identification of the e-mobility provider.</param>
        /// <param name="Description">An optional description of the auth start result.</param>
        /// <param name="AdditionalInfo">An optional additional message.</param>
        /// <param name="Runtime">The runtime of the request.</param>
        protected AAuthStopResult(IId AuthorizatorId,
                                  T Result,
                                  ChargingSession_Id?SessionId    = null,
                                  eMobilityProvider_Id?ProviderId = null,
                                  String Description    = null,
                                  String AdditionalInfo = null,
                                  TimeSpan?Runtime      = null)
        {
            #region Initial checks

            if (AuthorizatorId == null)
            {
                throw new ArgumentNullException(nameof(AuthorizatorId), "The given identification of the authorizator must not be null!");
            }

            #endregion

            this.AuthorizatorId = AuthorizatorId;
            this.Result         = Result;
            this.SessionId      = SessionId;
            this.ProviderId     = ProviderId ?? new eMobilityProvider_Id?();
            this.Description    = Description;
            this.AdditionalInfo = AdditionalInfo;
            this.Runtime        = Runtime;
        }
        Reserve(DateTime?StartTime = null,
                TimeSpan?Duration  = null,
                ChargingReservation_Id?ReservationId      = null,
                eMobilityProvider_Id?ProviderId           = null,
                RemoteAuthentication RemoteAuthentication = null,
                ChargingProduct ChargingProduct           = null,
                IEnumerable <Auth_Token> AuthTokens       = null,
                IEnumerable <eMobilityAccount_Id> eMAIds  = null,
                IEnumerable <UInt32> PINs = null,

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


        => Reserve(ChargingLocation.FromEVSEId(Id),
                   ChargingReservationLevel.EVSE,
                   StartTime,
                   Duration,
                   ReservationId,
                   ProviderId,
                   RemoteAuthentication,
                   ChargingProduct,
                   AuthTokens,
                   eMAIds,
                   PINs,

                   Timestamp,
                   CancellationToken,
                   EventTrackingId,
                   RequestTimeout);
        RemoteStop(ChargingSession_Id SessionId,
                   ReservationHandling?ReservationHandling   = null,
                   eMobilityProvider_Id?ProviderId           = null,
                   RemoteAuthentication RemoteAuthentication = null,

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

        {
            if (_ANetworkChargingStation == null)
            {
                return(RemoteStopResult.OutOfService(SessionId));
            }

            return(await _ANetworkChargingStation.
                   RemoteStop(SessionId,
                              ReservationHandling,
                              ProviderId,
                              RemoteAuthentication,

                              Timestamp,
                              CancellationToken,
                              EventTrackingId,
                              RequestTimeout));
        }
        RemoteStart(ChargingLocation ChargingLocation,
                    ChargingProduct ChargingProduct           = null,
                    ChargingReservation_Id?ReservationId      = null,
                    ChargingSession_Id?SessionId              = null,
                    eMobilityProvider_Id?ProviderId           = null,
                    RemoteAuthentication RemoteAuthentication = null,

                    DateTime?Timestamp = null,
                    CancellationToken?CancellationToken = null,
                    EventTracking_Id EventTrackingId    = null,
                    TimeSpan?RequestTimeout             = null)
        {
            if (_ANetworkChargingStation == null)
            {
                return(RemoteStartResult.OutOfService);
            }

            return(await _ANetworkChargingStation.
                   RemoteStart(ChargingLocation.FromEVSEId(Id),
                               ChargingProduct,
                               ReservationId,
                               SessionId,
                               ProviderId,
                               RemoteAuthentication,

                               Timestamp,
                               CancellationToken,
                               EventTrackingId,
                               RequestTimeout));
        }
        /// <summary>
        /// Create a parking reservation.
        /// </summary>
        public ParkingReservation(ParkingReservation_Id ReservationId,
                                  DateTime Timestamp,
                                  DateTime StartTime,
                                  TimeSpan Duration,
                                  DateTime EndTime,
                                  TimeSpan ConsumedReservationTime,
                                  ParkingReservationLevel ReservationLevel,

                                  eMobilityProvider_Id?ProviderId = null,
                                  eMobilityAccount_Id?eMAId       = null,

                                  RoamingNetwork RoamingNetwork       = null,
                                  ChargingPool_Id?ParkingPoolId       = null,
                                  ChargingStation_Id?ParkingStationId = null,
                                  EVSE_Id?EVSEId = null,
                                  ParkingProduct_Id?ParkingProductId = null,

                                  IEnumerable <Auth_Token> AuthTokens      = null,
                                  IEnumerable <eMobilityAccount_Id> eMAIds = null,
                                  IEnumerable <UInt32> PINs = null)

        {
            #region Initial checks

            if (ReservationId == null)
            {
                throw new ArgumentNullException(nameof(ReservationId), "The given parking reservation identification must not be null!");
            }

            #endregion

            this._ReservationId           = ReservationId;
            this._Timestamp               = Timestamp.ToUniversalTime();
            this._StartTime               = StartTime.ToUniversalTime();
            this._Duration                = Duration;
            this._EndTime                 = StartTime.ToUniversalTime() + Duration;
            this._ConsumedReservationTime = ConsumedReservationTime;
            this._ReservationLevel        = ReservationLevel;

            this.ProviderId = ProviderId;
            this.eMAId      = eMAId;

            this.RoamingNetwork   = RoamingNetwork;
            this.ParkingPoolId    = ParkingPoolId;
            this.ParkingStationId = ParkingStationId;
            this.EVSEId           = EVSEId;
            this.ParkingProductId = ParkingProductId;

            this._AuthTokens = AuthTokens != null ? new HashSet <Auth_Token>(AuthTokens) : new HashSet <Auth_Token>();
            this._eMAIds     = eMAIds != null ? new HashSet <eMobilityAccount_Id>    (eMAIds)     : new HashSet <eMobilityAccount_Id>();
            this._PINs       = PINs != null ? new HashSet <UInt32>    (PINs)       : new HashSet <UInt32>();
        }
        RemoteStop(ChargingSession_Id SessionId,
                   ReservationHandling?ReservationHandling   = null,
                   eMobilityProvider_Id?ProviderId           = null,
                   RemoteAuthentication RemoteAuthentication = null,

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

        {
            return(Task.FromResult(RemoteStopResult.OutOfService(SessionId)));
        }
        RemoteStart(ChargingLocation ChargingLocation,
                    ChargingProduct ChargingProduct           = null,
                    ChargingReservation_Id?ReservationId      = null,
                    ChargingSession_Id?SessionId              = null,
                    eMobilityProvider_Id?ProviderId           = null,
                    RemoteAuthentication RemoteAuthentication = null,

                    DateTime?Timestamp = null,
                    CancellationToken?CancellationToken = null,
                    EventTracking_Id EventTrackingId    = null,
                    TimeSpan?RequestTimeout             = null)
        {
            return(Task.FromResult(RemoteStartResult.OutOfService));
        }
Exemple #8
0
        /// <summary>
        /// Create a charging reservation.
        /// </summary>
        public ChargingReservation(ChargingReservation_Id Id,
                                   DateTime Timestamp,
                                   DateTime StartTime,
                                   TimeSpan Duration,
                                   DateTime EndTime,
                                   TimeSpan ConsumedReservationTime,
                                   ChargingReservationLevel ReservationLevel,

                                   eMobilityProvider_Id?ProviderId          = null,
                                   RemoteAuthentication StartAuthentication = null,

                                   RoamingNetwork_Id?RoamingNetworkId = null,
                                   ChargingStationOperator_Id?ChargingStationOperatorId = null,
                                   ChargingPool_Id?ChargingPoolId       = null,
                                   ChargingStation_Id?ChargingStationId = null,
                                   EVSE_Id?EVSEId = null,
                                   ChargingProduct ChargingProduct = null,

                                   IEnumerable <Auth_Token> AuthTokens      = null,
                                   IEnumerable <eMobilityAccount_Id> eMAIds = null,
                                   IEnumerable <UInt32> PINs = null,

                                   IEnumerable <ChargingReservation> SubReservations = null)

        {
            this.Id        = Id;
            this.Timestamp = Timestamp.ToUniversalTime();
            this.StartTime = StartTime.ToUniversalTime();
            this.Duration  = Duration;
            this.EndTime   = StartTime.ToUniversalTime() + Duration;
            this.ConsumedReservationTime = ConsumedReservationTime;
            this.ReservationLevel        = ReservationLevel;

            this.ProviderId          = ProviderId;
            this.StartAuthentication = StartAuthentication;

            this.RoamingNetworkId          = RoamingNetworkId;
            this.ChargingStationOperatorId = ChargingStationOperatorId;
            this.ChargingPoolId            = ChargingPoolId;
            this.ChargingStationId         = ChargingStationId;
            this.EVSEId          = EVSEId;
            this.ChargingProduct = ChargingProduct;

            this._AuthTokens = AuthTokens != null ? new HashSet <Auth_Token>         (AuthTokens)      : new HashSet <Auth_Token>();
            this._eMAIds     = eMAIds != null ? new HashSet <eMobilityAccount_Id>(eMAIds)          : new HashSet <eMobilityAccount_Id>();
            this._PINs       = PINs != null ? new HashSet <UInt32>             (PINs)            : new HashSet <UInt32>();

            this._SubReservations = SubReservations != null ? new HashSet <ChargingReservation>(SubReservations) : new HashSet <ChargingReservation>();
        }
Exemple #9
0
        Blocked(IId AuthorizatorId,
                IReceiveAuthorizeStartStop IReceiveAuthorizeStartStop,
                ChargingSession_Id?SessionId    = null,
                eMobilityProvider_Id?ProviderId = null,
                String Description    = null,
                String AdditionalInfo = null,
                TimeSpan?Runtime      = null)


        => new AuthStartEVSEResult(AuthorizatorId,
                                   IReceiveAuthorizeStartStop,
                                   AuthStartEVSEResultType.Blocked,
                                   SessionId,
                                   ProviderId:      ProviderId,
                                   Description:     Description,
                                   AdditionalInfo:  AdditionalInfo,
                                   Runtime:         Runtime);
        NotAuthorized(IId AuthorizatorId,
                      ISendAuthorizeStartStop ISendAuthorizeStartStop,
                      ChargingSession_Id?SessionId    = null,
                      eMobilityProvider_Id?ProviderId = null,
                      String Description    = "NotAuthorized",
                      String AdditionalInfo = null,
                      TimeSpan?Runtime      = null)


        => new AuthStopChargingPoolResult(AuthorizatorId,
                                          ISendAuthorizeStartStop,
                                          AuthStopChargingPoolResultType.NotAuthorized,
                                          SessionId,
                                          ProviderId,
                                          Description,
                                          AdditionalInfo,
                                          Runtime: Runtime);
Exemple #11
0
        /// <summary>
        /// Create a new abstract authorize start result.
        /// </summary>
        /// <param name="AuthorizatorId">The identification of the authorizing entity.</param>
        /// <param name="IReceiveAuthorizeStartStop">The entity giving an authorization.</param>
        /// <param name="Result">The authorize start result type.</param>
        /// <param name="SessionId">The optional charging session identification, when the authorize start operation was successful.</param>
        /// <param name="ContractId">An optional contract identification.</param>
        /// <param name="PrintedNumber">An optional printed number.</param>
        /// <param name="ExpiryDate">The timestamp when this authorization expires.</param>
        /// <param name="MaxkW">The optional maximum allowed charging current.</param>
        /// <param name="MaxkWh">The optional maximum allowed charging energy.</param>
        /// <param name="MaxDuration">The optional maximum allowed charging duration.</param>
        /// <param name="ChargingTariffs">Optional charging tariff information.</param>
        /// <param name="ListOfAuthStopTokens">An optional enumeration of authorize stop tokens.</param>
        /// <param name="ListOfAuthStopPINs">An optional enumeration of authorize stop PINs.</param>
        ///
        /// <param name="ProviderId">An optional identification of the e-mobility provider.</param>
        /// <param name="Description">An optional description of the auth start result.</param>
        /// <param name="AdditionalInfo">An optional additional message.</param>
        /// <param name="NumberOfRetries">Number of transmission retries.</param>
        /// <param name="Runtime">The runtime of the request.</param>
        protected AAuthStartResult(IId AuthorizatorId,
                                   IReceiveAuthorizeStartStop IReceiveAuthorizeStartStop,
                                   T Result,
                                   ChargingSession_Id?SessionId = null,
                                   String ContractId            = null,
                                   String PrintedNumber         = null,
                                   DateTime?ExpiryDate          = null,
                                   Single?MaxkW         = null,
                                   Single?MaxkWh        = null,
                                   TimeSpan?MaxDuration = null,
                                   IEnumerable <ChargingTariff> ChargingTariffs  = null,
                                   IEnumerable <Auth_Token> ListOfAuthStopTokens = null,
                                   IEnumerable <UInt32> ListOfAuthStopPINs       = null,

                                   eMobilityProvider_Id?ProviderId = null,
                                   String Description    = null,
                                   String AdditionalInfo = null,
                                   Byte NumberOfRetries  = 0,
                                   TimeSpan?Runtime      = null)

            : this(AuthorizatorId,
                   Result,
                   SessionId,
                   ContractId,
                   PrintedNumber,
                   ExpiryDate,
                   MaxkW,
                   MaxkWh,
                   MaxDuration,
                   ChargingTariffs,
                   ListOfAuthStopTokens,
                   ListOfAuthStopPINs,

                   ProviderId,
                   Description,
                   AdditionalInfo,
                   NumberOfRetries,
                   Runtime)

        {
            this.IReceiveAuthorizeStartStop = IReceiveAuthorizeStartStop;
        }
        Reserve(ChargingLocation ChargingLocation,
                ChargingReservationLevel ReservationLevel = ChargingReservationLevel.EVSE,
                DateTime?StartTime = null,
                TimeSpan?Duration  = null,
                ChargingReservation_Id?ReservationId      = null,
                eMobilityProvider_Id?ProviderId           = null,
                RemoteAuthentication RemoteAuthentication = null,
                ChargingProduct ChargingProduct           = null,
                IEnumerable <Auth_Token> AuthTokens       = null,
                IEnumerable <eMobilityAccount_Id> eMAIds  = null,
                IEnumerable <UInt32> PINs = null,

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

        {
            return(Task.FromResult(ReservationResult.OutOfService));
        }
Exemple #13
0
        /// <summary>
        /// Create a new abstract authorize stop result.
        /// </summary>
        /// <param name="AuthorizatorId">The identification of the authorizing entity.</param>
        /// <param name="IReceiveAuthorizeStartStop">The entity giving an authorization.</param>
        /// <param name="Result">The authorize start result type.</param>
        /// <param name="SessionId">The optional charging session identification, when the authorize start operation was successful.</param>
        ///
        /// <param name="ProviderId">An optional identification of the e-mobility provider.</param>
        /// <param name="Description">An optional description of the auth start result.</param>
        /// <param name="AdditionalInfo">An optional additional message.</param>
        /// <param name="Runtime">The runtime of the request.</param>
        protected AAuthStopResult(IId AuthorizatorId,
                                  IReceiveAuthorizeStartStop IReceiveAuthorizeStartStop,
                                  T Result,
                                  ChargingSession_Id?SessionId    = null,
                                  eMobilityProvider_Id?ProviderId = null,
                                  String Description    = null,
                                  String AdditionalInfo = null,
                                  TimeSpan?Runtime      = null)

            : this(AuthorizatorId,
                   Result,
                   SessionId,
                   ProviderId,
                   Description,
                   AdditionalInfo,
                   Runtime)

        {
            this.IReceiveAuthorizeStartStop = IReceiveAuthorizeStartStop;
        }
Exemple #14
0
        Reserve(ChargingLocation ChargingLocation,
                ChargingReservationLevel ReservationLevel = ChargingReservationLevel.EVSE,
                DateTime?StartTime = null,
                TimeSpan?Duration  = null,
                ChargingReservation_Id?ReservationId      = null,
                eMobilityProvider_Id?ProviderId           = null,
                RemoteAuthentication RemoteAuthentication = null,
                ChargingProduct ChargingProduct           = null,
                IEnumerable <Auth_Token> AuthTokens       = null,
                IEnumerable <eMobilityAccount_Id> eMAIds  = null,
                IEnumerable <UInt32> PINs = null,

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

        {
            if (_ANetworkChargingStation == null)
            {
                return(ReservationResult.OutOfService);
            }

            return(await _ANetworkChargingStation.
                   Reserve(ChargingLocation,
                           ReservationLevel,
                           StartTime,
                           Duration,
                           ReservationId,
                           ProviderId,
                           RemoteAuthentication,
                           ChargingProduct,
                           AuthTokens,
                           eMAIds,
                           PINs,

                           Timestamp,
                           CancellationToken,
                           EventTrackingId,
                           RequestTimeout));
        }
        /// <summary>
        /// Create a new authorize stop result.
        /// </summary>
        /// <param name="AuthorizatorId">The identification of the authorizing entity.</param>
        /// <param name="IReceiveAuthorizeStartStop">The entity giving an authorization.</param>
        /// <param name="Result">The authorize stop result type.</param>
        /// <param name="SessionId">The optional charging session identification.</param>
        ///
        /// <param name="ProviderId">An optional identification of the e-mobility provider.</param>
        /// <param name="Description">An optional description of the auth start result.</param>
        /// <param name="AdditionalInfo">An optional additional message.</param>
        /// <param name="Runtime">The runtime of the request.</param>
        private AuthStopChargingPoolResult(IId AuthorizatorId,
                                           IReceiveAuthorizeStartStop IReceiveAuthorizeStartStop,
                                           AuthStopChargingPoolResultType Result,
                                           ChargingSession_Id?SessionId = null,

                                           eMobilityProvider_Id?ProviderId = null,
                                           String Description    = null,
                                           String AdditionalInfo = null,
                                           TimeSpan?Runtime      = null)

            : base(AuthorizatorId,
                   IReceiveAuthorizeStartStop,
                   Result,
                   SessionId,
                   ProviderId,
                   Description,
                   AdditionalInfo,
                   Runtime)

        {
        }
Exemple #16
0
        /// <summary>
        /// Create a new abstract authorize start result.
        /// </summary>
        /// <param name="AuthorizatorId">The identification of the authorizing entity.</param>
        /// <param name="Result">The authorize start result type.</param>
        /// <param name="SessionId">The optional charging session identification, when the authorize start operation was successful.</param>
        /// <param name="ContractId">An optional contract identification.</param>
        /// <param name="PrintedNumber">An optional printed number.</param>
        /// <param name="ExpiryDate">The timestamp when this authorization expires.</param>
        /// <param name="MaxkW">The optional maximum allowed charging current.</param>
        /// <param name="MaxkWh">The optional maximum allowed charging energy.</param>
        /// <param name="MaxDuration">The optional maximum allowed charging duration.</param>
        /// <param name="ChargingTariffs">Optional charging tariff information.</param>
        /// <param name="ListOfAuthStopTokens">An optional enumeration of authorize stop tokens.</param>
        /// <param name="ListOfAuthStopPINs">An optional enumeration of authorize stop PINs.</param>
        ///
        /// <param name="ProviderId">An optional identification of the e-mobility provider.</param>
        /// <param name="Description">An optional description of the auth start result.</param>
        /// <param name="AdditionalInfo">An optional additional message.</param>
        /// <param name="NumberOfRetries">Number of transmission retries.</param>
        /// <param name="Runtime">The runtime of the request.</param>
        private AAuthStartResult(IId AuthorizatorId,
                                 T Result,
                                 ChargingSession_Id?SessionId = null,
                                 String ContractId            = null,
                                 String PrintedNumber         = null,
                                 DateTime?ExpiryDate          = null,
                                 Single?MaxkW         = null,
                                 Single?MaxkWh        = null,
                                 TimeSpan?MaxDuration = null,
                                 IEnumerable <ChargingTariff> ChargingTariffs  = null,
                                 IEnumerable <Auth_Token> ListOfAuthStopTokens = null,
                                 IEnumerable <UInt32> ListOfAuthStopPINs       = null,

                                 eMobilityProvider_Id?ProviderId = null,
                                 String Description    = null,
                                 String AdditionalInfo = null,
                                 Byte NumberOfRetries  = 0,
                                 TimeSpan?Runtime      = null)

        {
            this.AuthorizatorId          = AuthorizatorId ?? throw new ArgumentNullException(nameof(AuthorizatorId), "The given identification of the authorizator must not be null!");
            this.ISendAuthorizeStartStop = ISendAuthorizeStartStop;
            this.Result               = Result;
            this.SessionId            = SessionId;
            this.ContractId           = ContractId;
            this.PrintedNumber        = PrintedNumber;
            this.ExpiryDate           = ExpiryDate;
            this.MaxkW                = MaxkW;
            this.MaxkWh               = MaxkWh;
            this.MaxDuration          = MaxDuration;
            this.ChargingTariffs      = ChargingTariffs;
            this.ListOfAuthStopTokens = ListOfAuthStopTokens;
            this.ListOfAuthStopPINs   = ListOfAuthStopPINs;

            this.ProviderId      = ProviderId ?? new eMobilityProvider_Id?();
            this.Description     = Description;
            this.AdditionalInfo  = AdditionalInfo;
            this.NumberOfRetries = NumberOfRetries;
            this.Runtime         = Runtime ?? TimeSpan.FromSeconds(0);
        }
Exemple #17
0
        Authorized(IId AuthorizatorId,
                   ISendAuthorizeStartStop ISendAuthorizeStartStop,
                   ChargingSession_Id?SessionId = null,
                   String ContractId            = null,
                   String PrintedNumber         = null,
                   DateTime?ExpiryDate          = null,
                   Single?MaxkW         = null,
                   Single?MaxkWh        = null,
                   TimeSpan?MaxDuration = null,
                   IEnumerable <ChargingTariff> ChargingTariffs  = null,
                   IEnumerable <Auth_Token> ListOfAuthStopTokens = null,
                   IEnumerable <UInt32> ListOfAuthStopPINs       = null,

                   eMobilityProvider_Id?ProviderId = null,
                   String Description    = "Success",
                   String AdditionalInfo = null,
                   Byte NumberOfRetries  = 0,
                   TimeSpan?Runtime      = null)


        => new AuthStartEVSEResult(AuthorizatorId,
                                   ISendAuthorizeStartStop,
                                   AuthStartEVSEResultType.Authorized,
                                   SessionId,
                                   ContractId,
                                   PrintedNumber,
                                   ExpiryDate,
                                   MaxkW,
                                   MaxkWh,
                                   MaxDuration,
                                   ChargingTariffs,
                                   ListOfAuthStopTokens,
                                   ListOfAuthStopPINs,

                                   ProviderId,
                                   Description,
                                   AdditionalInfo,
                                   NumberOfRetries,
                                   Runtime);
Exemple #18
0
        RemoteStart(ChargingProduct ChargingProduct           = null,
                    ChargingReservation_Id?ReservationId      = null,
                    ChargingSession_Id?SessionId              = null,
                    eMobilityProvider_Id?ProviderId           = null,
                    RemoteAuthentication RemoteAuthentication = null,

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


        => RemoteStart(ChargingLocation.FromEVSEId(Id),
                       ChargingProduct,
                       ReservationId,
                       SessionId,
                       ProviderId,
                       RemoteAuthentication,

                       Timestamp,
                       CancellationToken,
                       EventTrackingId,
                       RequestTimeout);
Exemple #19
0
        CreateOICPv2_3_CPORoamingProvider(this RoamingNetwork RoamingNetwork,
                                          CSORoamingProvider_Id Id,
                                          I18NString Name,
                                          OICPv2_3.EMP.EMPRoaming EMPRoaming,

                                          OICPv2_3.EMP.EVSEDataRecord2EVSEDelegate EVSEDataRecord2EVSE = null,

                                          Boolean PullEVSEData_IsDisabled      = false,
                                          TimeSpan?PullEVSEData_InitialDelay   = null,
                                          TimeSpan?PullEVSEData_Every          = null,
                                          UInt32?PullEVSEData_RequestPageSize  = null,
                                          TimeSpan?PullEVSEData_RequestTimeout = null,

                                          IEnumerable <OICPv2_3.Operator_Id> PullEVSEData_OperatorIdFilter                 = null,
                                          IEnumerable <Country> PullEVSEData_CountryCodeFilter                             = null,
                                          IEnumerable <OICPv2_3.AccessibilityTypes> PullEVSEData_AccessibilityFilter       = null,
                                          IEnumerable <OICPv2_3.AuthenticationModes> PullEVSEData_AuthenticationModeFilter = null,
                                          IEnumerable <OICPv2_3.CalibrationLawDataAvailabilities> PullEVSEData_CalibrationLawDataAvailabilityFilter = null,
                                          Boolean?PullEVSEData_RenewableEnergyFilter     = null,
                                          Boolean?PullEVSEData_IsHubjectCompatibleFilter = null,
                                          Boolean?PullEVSEData_IsOpen24HoursFilter       = null,

                                          Boolean PullEVSEStatus_IsDisabled      = false,
                                          TimeSpan?PullEVSEStatus_InitialDelay   = null,
                                          TimeSpan?PullEVSEStatus_Every          = null,
                                          TimeSpan?PullEVSEStatus_RequestTimeout = null,

                                          Boolean GetChargeDetailRecords_IsDisabled      = false,
                                          TimeSpan?GetChargeDetailRecords_InitialDelay   = null,
                                          TimeSpan?GetChargeDetailRecords_Every          = null,
                                          TimeSpan?GetChargeDetailRecords_RequestTimeout = null,

                                          eMobilityProvider DefaultProvider      = null,
                                          eMobilityProvider_Id?DefaultProviderId = null,
                                          GeoCoordinate?DefaultSearchCenter      = null,
                                          UInt64?DefaultDistanceKM = null,

                                          Action <OICPv2_3.EMP.WWCPCSOAdapter> OICPConfigurator = null,
                                          Action <ICSORoamingProvider> Configurator             = null)

        {
            #region Initial checks

            if (RoamingNetwork is null)
            {
                throw new ArgumentNullException(nameof(RoamingNetwork), "The given roaming network must not be null!");
            }

            if (Name.IsNullOrEmpty())
            {
                throw new ArgumentNullException(nameof(Name), "The given roaming provider name must not be null or empty!");
            }

            if (EMPRoaming is null)
            {
                throw new ArgumentNullException(nameof(EMPRoaming), "The given EMP Roaming must not be null!");
            }

            #endregion

            var newRoamingProvider = new OICPv2_3.EMP.WWCPCSOAdapter(Id,
                                                                     Name,
                                                                     RoamingNetwork,
                                                                     EMPRoaming,

                                                                     EVSEDataRecord2EVSE,

                                                                     PullEVSEData_IsDisabled,
                                                                     PullEVSEData_InitialDelay,
                                                                     PullEVSEData_Every,
                                                                     PullEVSEData_RequestPageSize,
                                                                     PullEVSEData_RequestTimeout,

                                                                     PullEVSEData_OperatorIdFilter,
                                                                     PullEVSEData_CountryCodeFilter,
                                                                     PullEVSEData_AccessibilityFilter,
                                                                     PullEVSEData_AuthenticationModeFilter,
                                                                     PullEVSEData_CalibrationLawDataAvailabilityFilter,
                                                                     PullEVSEData_RenewableEnergyFilter,
                                                                     PullEVSEData_IsHubjectCompatibleFilter,
                                                                     PullEVSEData_IsOpen24HoursFilter,

                                                                     PullEVSEStatus_IsDisabled,
                                                                     PullEVSEStatus_InitialDelay,
                                                                     PullEVSEStatus_Every,
                                                                     PullEVSEStatus_RequestTimeout,

                                                                     GetChargeDetailRecords_IsDisabled,
                                                                     GetChargeDetailRecords_InitialDelay,
                                                                     GetChargeDetailRecords_Every,
                                                                     GetChargeDetailRecords_RequestTimeout,

                                                                     DefaultProvider,
                                                                     DefaultProviderId,
                                                                     DefaultSearchCenter,
                                                                     DefaultDistanceKM);


            OICPConfigurator?.Invoke(newRoamingProvider);

            return(RoamingNetwork.
                   CreateNewRoamingProvider(newRoamingProvider,
                                            Configurator) as OICPv2_3.EMP.WWCPCSOAdapter);
        }
Exemple #20
0
 public Task <POIDataPull <org.GraphDefined.WWCP.EVSE> > PullEVSEData(DateTime?LastCall = null, GeoCoordinate?SearchCenter = null, float DistanceKM = 0, eMobilityProvider_Id?ProviderId = null, IEnumerable <ChargingStationOperator_Id> OperatorIdFilter = null, IEnumerable <Country> CountryCodeFilter = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null)
 {
     throw new NotImplementedException();
 }
 public static Provider_Id?ToEMIP(this eMobilityProvider_Id?ProviderId)
 => ProviderId.HasValue
            ? Provider_Id.Parse(ProviderId.ToString())
            : new Provider_Id?();
Exemple #22
0
        /// <summary>
        /// Create a charge detail record for the given charging session (identification).
        /// </summary>
        /// <param name="SessionId">The unique charging session identification.</param>
        /// <param name="SessionTime">The timestamps when the charging session started and ended.</param>
        /// <param name="Duration">The duration of the charging session, whenever it is more than the time span between its start- and endtime, e.g. caused by a tariff granularity of 15 minutes.</param>
        ///
        /// <param name="EVSE">The EVSE used for charging.</param>
        /// <param name="EVSEId">The identification of the EVSE used for charging.</param>
        /// <param name="ChargingStation">The charging station of the charging station used for charging.</param>
        /// <param name="ChargingStationId">The identification of the charging station used for charging.</param>
        /// <param name="ChargingPool">The charging pool of the charging pool used for charging.</param>
        /// <param name="ChargingPoolId">The identification of the charging pool used for charging.</param>
        /// <param name="ChargingStationOperator">The charging station operator used for charging.</param>
        /// <param name="ChargingStationOperatorId">The identification of the charging station operator used for charging.</param>
        /// <param name="ChargingProduct">The consumed charging product.</param>
        /// <param name="ChargingPrice">The charging price.</param>
        ///
        /// <param name="AuthenticationStart">The authentication used for starting this charging process.</param>
        /// <param name="AuthenticationStop">The authentication used for stopping this charging process.</param>
        /// <param name="ProviderIdStart">The identification of the e-mobility provider used for starting this charging process.</param>
        /// <param name="ProviderIdStop">The identification of the e-mobility provider used for stopping this charging process.</param>
        ///
        /// <param name="Reservation">The optional charging reservation used before charging.</param>
        /// <param name="ReservationId">The optional charging reservation identification used before charging.</param>
        /// <param name="ReservationTime">Optional timestamps when the reservation started and ended.</param>
        ///
        /// <param name="ParkingSpaceId">The optional identification of the parkging space.</param>
        /// <param name="ParkingTime">Optional timestamps when the parking started and ended.</param>
        /// <param name="ParkingFee">The optional fee for parking.</param>
        ///
        /// <param name="EnergyMeterId">An optional unique identification of the energy meter.</param>
        /// <param name="EnergyMeteringValues">An optional enumeration of intermediate energy metering values.</param>
        ///
        /// <param name="CustomData">An optional dictionary of customer-specific data.</param>
        public ChargeDetailRecord(ChargingSession_Id SessionId,
                                  StartEndDateTime?SessionTime,
                                  TimeSpan?Duration = null,

                                  EVSE EVSE      = null,
                                  EVSE_Id?EVSEId = null,
                                  ChargingStation ChargingStation                      = null,
                                  ChargingStation_Id?ChargingStationId                 = null,
                                  ChargingPool ChargingPool                            = null,
                                  ChargingPool_Id?ChargingPoolId                       = null,
                                  ChargingStationOperator ChargingStationOperator      = null,
                                  ChargingStationOperator_Id?ChargingStationOperatorId = null,
                                  ChargingProduct ChargingProduct                      = null,
                                  Decimal?ChargingPrice = null,

                                  AAuthentication AuthenticationStart  = null,
                                  AAuthentication AuthenticationStop   = null,
                                  eMobilityProvider_Id?ProviderIdStart = null,
                                  eMobilityProvider_Id?ProviderIdStop  = null,

                                  ChargingReservation Reservation      = null,
                                  ChargingReservation_Id?ReservationId = null,
                                  StartEndDateTime?ReservationTime     = null,

                                  ParkingSpace_Id?ParkingSpaceId = null,
                                  StartEndDateTime?ParkingTime   = null,
                                  Decimal?ParkingFee             = null,

                                  EnergyMeter_Id?EnergyMeterId = null,
                                  IEnumerable <Timestamped <Single> > EnergyMeteringValues = null,
                                  IEnumerable <SignedMeteringValue> SignedMeteringValues   = null,
                                  IEnumerable <String> Signatures = null,

                                  IReadOnlyDictionary <String, Object> CustomData = null)

            : base(CustomData)

        {
            this.SessionId   = SessionId;
            this.SessionTime = SessionTime;
            this.Duration    = Duration;

            this.EVSE                      = EVSE;
            this.EVSEId                    = EVSEId ?? EVSE?.Id;
            this.ChargingStation           = ChargingStation;
            this.ChargingStationId         = ChargingStationId ?? ChargingStation?.Id;
            this.ChargingPool              = ChargingPool;
            this.ChargingPoolId            = ChargingPoolId ?? ChargingPool?.Id;
            this.ChargingStationOperator   = ChargingStationOperator;
            this.ChargingStationOperatorId = ChargingStationOperatorId ?? ChargingStationOperator?.Id;
            this.ChargingProduct           = ChargingProduct;
            this.ChargingPrice             = ChargingPrice;

            this.IdentificationStart = AuthenticationStart;
            this.IdentificationStop  = AuthenticationStop;
            this.ProviderIdStart     = ProviderIdStart;
            this.ProviderIdStop      = ProviderIdStop;

            this.Reservation     = Reservation;
            this.ReservationId   = ReservationId ?? Reservation?.Id;
            this.ReservationTime = ReservationTime;

            this.ParkingSpaceId = ParkingSpaceId;
            this.ParkingTime    = ParkingTime;
            this.ParkingFee     = ParkingFee;

            this.EnergyMeterId        = EnergyMeterId;
            this.EnergyMeteringValues = EnergyMeteringValues ?? new Timestamped <Single> [0];
            this.SignedMeteringValues = SignedMeteringValues ?? new SignedMeteringValue[0];
            this._Signatures          = Signatures.SafeAny()  ? new HashSet <String>(Signatures) : new HashSet <String>();

            if (SignedMeteringValues.SafeAny() && !EnergyMeteringValues.SafeAny())
            {
                this.EnergyMeteringValues = SignedMeteringValues.Select(svalue => new Timestamped <Single>(svalue.Timestamp,
                                                                                                           (Single)svalue.MeterValue));
            }
        }
Exemple #23
0
 public Task <StatusPull <EVSEStatus> > PullEVSEStatus(DateTime?LastCall = null, GeoCoordinate?SearchCenter = null, float DistanceKM = 0, EVSEStatusTypes?EVSEStatusFilter = null, eMobilityProvider_Id?ProviderId = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null)
 {
     throw new NotImplementedException();
 }
Exemple #24
0
 public Task <IEnumerable <ChargeDetailRecord> > GetChargeDetailRecords(DateTime From, DateTime?To = null, eMobilityProvider_Id?ProviderId = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null)
 {
     throw new NotImplementedException();
 }
Exemple #25
0
 public Task <ReservationResult> Reserve(ChargingLocation ChargingLocation, ChargingReservationLevel ReservationLevel = ChargingReservationLevel.EVSE, DateTime?StartTime = null, TimeSpan?Duration = null, ChargingReservation_Id?ReservationId = null, eMobilityProvider_Id?ProviderId = null, RemoteAuthentication RemoteAuthentication = null, ChargingProduct ChargingProduct = null, IEnumerable <Auth_Token> AuthTokens = null, IEnumerable <eMobilityAccount_Id> eMAIds = null, IEnumerable <uint> PINs = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null)
 {
     throw new NotImplementedException();
 }
Exemple #26
0
 public Task <RemoteStopResult> RemoteStop(ChargingSession_Id SessionId, ReservationHandling?ReservationHandling = null, eMobilityProvider_Id?ProviderId = null, RemoteAuthentication RemoteAuthentication = null, DateTime?Timestamp = null, CancellationToken?CancellationToken = null, EventTracking_Id EventTrackingId = null, TimeSpan?RequestTimeout = null)
 {
     throw new NotImplementedException();
 }