Esempio n. 1
0
        /// <summary>
        /// Compares two EVSEs for equality.
        /// </summary>
        /// <param name="EVSE">An EVSE to compare with.</param>
        /// <returns>True if both match; False otherwise.</returns>
        public Boolean Equals(EVSE EVSE)
        {
            if ((Object)EVSE == null)
            {
                return(false);
            }

            return(Id.Equals(EVSE.Id));
        }
Esempio n. 2
0
        /// <summary>
        /// Compares two instances of this object.
        /// </summary>
        /// <param name="EVSE">An EVSE to compare with.</param>
        public Int32 CompareTo(EVSE EVSE)
        {
            if ((Object)EVSE == null)
            {
                throw new ArgumentNullException(nameof(EVSE), "The given EVSE must not be null!");
            }

            return(Id.CompareTo(EVSE.Id));
        }
Esempio n. 3
0
        /// <summary>
        /// The Session object describes the Session and its properties
        /// where a group of EVSEs that belong together are installed.
        /// </summary>
        /// <param name="Id">Uniquely identifies the Session within the CPOs platform (and suboperator platforms).</param>
        /// <param name="Start">The time when the session became active.</param>
        /// <param name="End">The time when the session is completed.</param>
        /// <param name="kWh">How many kWh are charged.</param>
        /// <param name="AuthId">An id provided by the authentication used so that the eMSP knows to which driver the session belongs.</param>
        /// <param name="AuthMethod">Method used for authentication.</param>
        /// <param name="Location">The location where this session took place.</param>
        /// <param name="EVSE">The EVSE that was used for this session.</param>
        /// <param name="ConnectorId">Connector ID of the connector used at the EVSE.</param>
        /// <param name="MeterId">Optional identification of the kWh meter.</param>
        /// <param name="Currency">ISO 4217 code of the currency used for this session.</param>
        /// <param name="ChargingPeriods">An optional enumeration of charging periods that can be used to calculate and verify the total cost.</param>
        /// <param name="TotalCosts">The total cost (excluding VAT) of the session in the specified currency. This is the price that the eMSP will have to pay to the CPO.</param>
        /// <param name="Status">The status of the session.</param>
        public Session(Session_Id Id,
                       DateTime Start,
                       DateTime?End,
                       Decimal kWh,
                       Auth_Id AuthId,
                       AuthMethodType AuthMethod,
                       Location Location,
                       EVSE EVSE,
                       Connector_Id ConnectorId,
                       Meter_Id MeterId,
                       Currency Currency,
                       IEnumerable <ChargingPeriod> ChargingPeriods,
                       Decimal TotalCosts,
                       SessionStatusType Status)

            : base(Id)

        {
            #region Initial checks

            if (AuthId == null)
            {
                throw new ArgumentNullException("AuthId", "The given parameter must not be null!");
            }

            if (Location == null)
            {
                throw new ArgumentNullException("Location", "The given parameter must not be null!");
            }

            if (EVSE == null)
            {
                throw new ArgumentNullException("EVSE", "The given parameter must not be null!");
            }

            if (ConnectorId == null)
            {
                throw new ArgumentNullException("ConnectorId", "The given parameter must not be null!");
            }

            if (MeterId == null)
            {
                throw new ArgumentNullException("MeterId", "The given parameter must not be null!");
            }

            if (Currency == null)
            {
                throw new ArgumentNullException("Currency", "The given parameter must not be null!");
            }

            #endregion

            #region Init data and properties

            this._Start           = Start;
            this._End             = End;
            this._kWh             = kWh;
            this._AuthId          = AuthId;
            this._AuthMethod      = AuthMethod;
            this._Location        = Location;
            this._EVSE            = EVSE;
            this._ConnectorId     = ConnectorId;
            this._MeterId         = MeterId;
            this._Currency        = Currency;
            this._ChargingPeriods = ChargingPeriods;
            this._TotalCosts      = TotalCosts;
            this._Status          = Status;

            #endregion
        }
Esempio n. 4
0
        /// <summary>
        /// The CDR object describes the Charging Session and its costs.
        /// How these costs are build up etc.
        /// </summary>
        /// <param name="Id">Uniquely identifies the CDR within the CPOs platform (and suboperator platforms).</param>
        /// <param name="Start">The time when the CDR became active.</param>
        /// <param name="End">The time when the CDR is completed.</param>
        /// <param name="AuthId">An id provided by the authentication used so that the eMSP knows to which driver the CDR belongs.</param>
        /// <param name="AuthMethod">Method used for authentication.</param>
        /// <param name="Dimensions">List of relevant values for this charging period.</param>
        /// <param name="Location">The location where this CDR took place.</param>
        /// <param name="EVSE">The EVSE that was used for this CDR.</param>
        /// <param name="ConnectorId">Connector ID of the connector used at the EVSE.</param>
        /// <param name="MeterId">Optional identification of the kWh meter.</param>
        /// <param name="Currency">ISO 4217 code of the currency used for this CDR.</param>
        /// <param name="Tariffs">Enumeration of relevant tariffs.</param>
        /// <param name="ChargingPeriods">Enumeration of charging periods that make up this charging session. A session consist of 1 or more periodes with, each period has a different relevant Tariff.</param>
        /// <param name="TotalCosts">The total cost (excluding VAT) of the CDR in the specified currency. This is the price that the eMSP will have to pay to the CPO.</param>
        /// <param name="Remark">Optional remark, can be used to provide addition human readable information to the CDR, for example: reason why a transaction was stopped.</param>
        public CDR(CDR_Id Id,
                   DateTime Start,
                   DateTime?End,
                   Auth_Id AuthId,
                   AuthMethodType AuthMethod,
                   IEnumerable <CDRDimension> Dimensions,
                   Location Location,
                   EVSE EVSE,
                   Connector_Id ConnectorId,
                   Meter_Id MeterId,
                   Currency Currency,
                   IEnumerable <Tariff> Tariffs,
                   IEnumerable <ChargingPeriod> ChargingPeriods,
                   Decimal TotalCosts,
                   I18NString Remark)

            : base(Id)

        {
            #region Initial checks

            if (AuthId == null)
            {
                throw new ArgumentNullException("AuthId", "The given parameter must not be null!");
            }

            if (Dimensions == null)
            {
                throw new ArgumentNullException("Dimensions", "The given parameter must not be null!");
            }

            if (!Dimensions.Any())
            {
                throw new ArgumentNullException("Dimensions", "The given enumeration must not be empty!");
            }

            if (Location == null)
            {
                throw new ArgumentNullException("Location", "The given parameter must not be null!");
            }

            if (EVSE == null)
            {
                throw new ArgumentNullException("EVSE", "The given parameter must not be null!");
            }

            if (ConnectorId == null)
            {
                throw new ArgumentNullException("ConnectorId", "The given parameter must not be null!");
            }

            if (MeterId == null)
            {
                throw new ArgumentNullException("MeterId", "The given parameter must not be null!");
            }

            if (Currency == null)
            {
                throw new ArgumentNullException("Currency", "The given parameter must not be null!");
            }

            if (ChargingPeriods == null)
            {
                throw new ArgumentNullException("ChargingPeriods", "The given parameter must not be null!");
            }

            if (!ChargingPeriods.Any())
            {
                throw new ArgumentNullException("ChargingPeriods", "The given enumeration must not be empty!");
            }

            #endregion

            #region Init data and properties

            this._Start           = Start;
            this._End             = End;
            this._AuthId          = AuthId;
            this._AuthMethod      = AuthMethod;
            this._Dimensions      = Dimensions;
            this._Location        = Location;
            this._EVSE            = EVSE;
            this._ConnectorId     = ConnectorId;
            this._MeterId         = MeterId;
            this._Currency        = Currency;
            this._Tariffs         = Tariffs;
            this._ChargingPeriods = ChargingPeriods;
            this._TotalCosts      = TotalCosts;
            this._Remark          = Remark != null ? Remark : new I18NString();

            #endregion
        }