/// <summary>
        /// Create a new remote stop result.
        /// </summary>
        /// <param name="SessionId">The unique charging session identification.</param>
        /// <param name="Result">The result of the remote stop request.</param>
        /// <param name="ErrorMessage">A optional error message.</param>
        private RemoteStopChargingStationResult(ChargingSession_Id SessionId,
                                                RemoteStopChargingStationResultType Result,
                                                String ErrorMessage = null)
        {
            #region Initial checks

            if (SessionId == null)
            {
                throw new ArgumentNullException(nameof(SessionId), "The given charging session identification must not be null!");
            }

            #endregion

            this._SessionId    = SessionId;
            this._Result       = Result;
            this._ErrorMessage = ErrorMessage;
        }
        /// <summary>
        /// Create a new remote stop result.
        /// </summary>
        /// <param name="SessionId">The unique charging session identification.</param>
        /// <param name="Result">The result of the remote stop request.</param>
        /// <param name="ReservationId">The optional charging reservation identification of the charging session.</param>
        /// <param name="ReservationHandling">The handling of the charging reservation after the charging session stopped.</param>
        private RemoteStopChargingStationResult(ChargingSession_Id SessionId,
                                                RemoteStopChargingStationResultType Result,
                                                ChargingReservation_Id ReservationId,
                                                ReservationHandling ReservationHandling)
        {
            #region Initial checks

            if (SessionId == null)
            {
                throw new ArgumentNullException(nameof(SessionId), "The given charging session identification must not be null!");
            }

            #endregion

            this._SessionId           = SessionId;
            this._Result              = Result;
            this._ReservationId       = ReservationId;
            this._ReservationHandling = ReservationHandling != null ? ReservationHandling : ReservationHandling.Close;
        }
        /// <summary>
        /// Create a new remote stop result.
        /// </summary>
        /// <param name="ChargeDetailRecord">The charge detail record for a successfully stopped charging process.</param>
        /// <param name="Result">The result of the remote stop request.</param>
        /// <param name="ReservationId">The optional charging reservation identification of the charging session.</param>
        /// <param name="ReservationHandling">The handling of the charging reservation after the charging session stopped.</param>
        private RemoteStopChargingStationResult(ChargeDetailRecord ChargeDetailRecord,
                                                RemoteStopChargingStationResultType Result,
                                                ChargingReservation_Id ReservationId,
                                                ReservationHandling ReservationHandling)
        {
            #region Initial checks

            if (ChargeDetailRecord == null)
            {
                throw new ArgumentNullException(nameof(ChargeDetailRecord), "The given charge detail record must not be null!");
            }

            #endregion

            this._ChargeDetailRecord  = ChargeDetailRecord;
            this._SessionId           = ChargeDetailRecord.SessionId;
            this._Result              = Result;
            this._ReservationId       = ReservationId;
            this._ReservationHandling = ReservationHandling != null ? ReservationHandling : ReservationHandling.Close;
        }