/// <summary>
        /// Create a new PushChargingStationStatus result.
        /// </summary>
        /// <param name="AuthId">The unqiue identification of the authenticator.</param>
        /// <param name="IReceiveStatus">An object implementing IReceiveStatus.</param>
        /// <param name="Result">The result of the operation.</param>
        /// <param name="Description">An optional description of the result code.</param>
        /// <param name="RejectedChargingStationStatusUpdates">An enumeration of rejected ChargingStation status updates.</param>
        /// <param name="Warnings">Warnings or additional information.</param>
        /// <param name="Runtime">The runtime of the request.</param>
        internal PushChargingStationStatusResult(IId AuthId,
                                                 IReceiveStatus IReceiveStatus,
                                                 PushChargingStationStatusResultTypes Result,
                                                 String Description = null,
                                                 IEnumerable <ChargingStationStatusUpdate> RejectedChargingStationStatusUpdates = null,
                                                 IEnumerable <Warning> Warnings = null,
                                                 TimeSpan?Runtime = null)

            : this(AuthId,
                   Result,
                   Description,
                   RejectedChargingStationStatusUpdates,
                   Warnings,
                   Runtime)

        {
            this.IReceiveStatus = IReceiveStatus;
        }
        /// <summary>
        /// Create a new PushChargingStationStatus result.
        /// </summary>
        /// <param name="AuthId">The unqiue identification of the authenticator.</param>
        /// <param name="Result">The result of the operation.</param>
        /// <param name="Description">An optional description of the result code.</param>
        /// <param name="RejectedChargingStationStatusUpdates">An enumeration of rejected ChargingStation status updates.</param>
        /// <param name="Warnings">Warnings or additional information.</param>
        /// <param name="Runtime">The runtime of the request.</param>
        private PushChargingStationStatusResult(IId AuthId,
                                                PushChargingStationStatusResultTypes Result,
                                                String Description = null,
                                                IEnumerable <ChargingStationStatusUpdate> RejectedChargingStationStatusUpdates = null,
                                                IEnumerable <Warning> Warnings = null,
                                                TimeSpan?Runtime = null)
        {
            this.AuthId = AuthId;
            this.Result = Result;

            this.Description = Description.IsNotNullOrEmpty()
                                                  ? Description.Trim()
                                                  : null;

            this.RejectedChargingStationStatusUpdates = RejectedChargingStationStatusUpdates != null
                                                  ? RejectedChargingStationStatusUpdates.Where(evse => evse != null)
                                                  : new ChargingStationStatusUpdate[0];

            this.Warnings = Warnings != null
                                                  ? Warnings.Where(warning => warning.IsNotNullOrEmpty())
                                                  : new Warning[0];

            this.Runtime = Runtime;
        }