Пример #1
0
        /// <summary>
        /// Create a new eMIP EMP server logger using the given logging delegates.
        /// </summary>
        /// <param name="EMPServer">A eMIP EMP server.</param>
        /// <param name="LoggingPath">The logging path.</param>
        /// <param name="Context">A context of this API.</param>
        ///
        /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
        /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
        /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
        /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
        ///
        /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
        /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
        /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP server sent events source.</param>
        /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP server sent events source.</param>
        ///
        /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
        /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
        /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
        /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP server sent events source.</param>
        ///
        /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
        public EMPServerLogger(EMPServer EMPServer,
                               String LoggingPath,
                               String Context,

                               HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                               HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                               HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                               HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                               HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                               HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                               HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                               HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                               HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                               HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                               HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                               HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                               LogfileCreatorDelegate LogfileCreator = null)

            : base(EMPServer.SOAPServer.HTTPServer,
                   LoggingPath,
                   Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                   LogHTTPRequest_toConsole,
                   LogHTTPResponse_toConsole,
                   LogHTTPRequest_toDisc,
                   LogHTTPResponse_toDisc,

                   LogHTTPRequest_toNetwork,
                   LogHTTPResponse_toNetwork,
                   LogHTTPRequest_toHTTPSSE,
                   LogHTTPResponse_toHTTPSSE,

                   LogHTTPError_toConsole,
                   LogHTTPError_toDisc,
                   LogHTTPError_toNetwork,
                   LogHTTPError_toHTTPSSE,

                   LogfileCreator)

        {
            this.EMPServer = EMPServer ?? throw new ArgumentNullException(nameof(EMPServer), "The given EMP server must not be null!");

            #region Register remote start/stop log events


            #endregion
        }
            /// <summary>
            /// Create a new OICP Central client logger using the given logging delegates.
            /// </summary>
            /// <param name="CentralClient">A OICP Central client.</param>
            /// <param name="Context">A context of this API.</param>
            ///
            /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
            /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
            /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
            /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
            ///
            /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
            /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
            /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP client sent events source.</param>
            /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP client sent events source.</param>
            ///
            /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
            /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
            /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
            /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP client sent events source.</param>
            ///
            /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
            public CentralClientLogger(ICentralClient CentralClient,
                                       String Context,

                                       HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                                       HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                                       HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                                       HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                                       HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                                       HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                                       HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                                       HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                                       HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                                       HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                                       HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                                       HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                                       LogfileCreatorDelegate LogfileCreator = null)

                : base(CentralClient,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                       LogHTTPRequest_toConsole,
                       LogHTTPResponse_toConsole,
                       LogHTTPRequest_toDisc,
                       LogHTTPResponse_toDisc,

                       LogHTTPRequest_toNetwork,
                       LogHTTPResponse_toNetwork,
                       LogHTTPRequest_toHTTPSSE,
                       LogHTTPResponse_toHTTPSSE,

                       LogHTTPError_toConsole,
                       LogHTTPError_toDisc,
                       LogHTTPError_toNetwork,
                       LogHTTPError_toHTTPSSE,

                       LogfileCreator)

            {
                #region Initial checks

                if (CentralClient == null)
                {
                    throw new ArgumentNullException(nameof(CentralClient), "The given Central client must not be null!");
                }

                this.CentralClient = CentralClient;

                #endregion


                // Register EVSE data/status push log events

                //#region PullEVSEData

                //RegisterEvent("PullEVSEDataRequest",
                //              handler => CentralClient.OnPullEVSEDataSOAPRequest += handler,
                //              handler => CentralClient.OnPullEVSEDataSOAPRequest -= handler,
                //              "PullEVSEData", "Requests", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //RegisterEvent("PullEVSEDataResponse",
                //              handler => CentralClient.OnPullEVSEDataSOAPResponse += handler,
                //              handler => CentralClient.OnPullEVSEDataSOAPResponse -= handler,
                //              "PullEVSEData", "Responses", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //#endregion

                //#region PullAuthorizationStart/-ById

                //RegisterEvent("AuthorizeStartRequest",
                //              handler => CentralClient.OnPullAuthorizationStartSOAPRequest += handler,
                //              handler => CentralClient.OnPullAuthorizationStartSOAPRequest -= handler,
                //              "PullAuthorizationStart", "Requests", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //RegisterEvent("PullAuthorizationStartResponse",
                //              handler => CentralClient.OnPullAuthorizationStartSOAPResponse += handler,
                //              handler => CentralClient.OnPullAuthorizationStartSOAPResponse -= handler,
                //              "PullAuthorizationStart", "Responses", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);


                //RegisterEvent("PullAuthorizationStartByIdRequest",
                //              handler => CentralClient.OnPullAuthorizationStartByIdSOAPRequest += handler,
                //              handler => CentralClient.OnPullAuthorizationStartByIdSOAPRequest -= handler,
                //              "PullAuthorizationStartById", "Requests", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //RegisterEvent("PullAuthorizationStartByIdResponse",
                //              handler => CentralClient.OnPullAuthorizationStartByIdSOAPResponse += handler,
                //              handler => CentralClient.OnPullAuthorizationStartByIdSOAPResponse -= handler,
                //              "PullAuthorizationStartById", "Responses", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //#endregion

                //#region PushAuthenticationData

                //RegisterEvent("PushAuthenticationDataRequest",
                //              handler => CentralClient.OnPushAuthenticationDataSOAPRequest += handler,
                //              handler => CentralClient.OnPushAuthenticationDataSOAPRequest -= handler,
                //              "PushAuthenticationData", "Requests", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //RegisterEvent("PushAuthenticationDataResponse",
                //              handler => CentralClient.OnPushAuthenticationDataSOAPResponse += handler,
                //              handler => CentralClient.OnPushAuthenticationDataSOAPResponse -= handler,
                //              "PushAuthenticationData", "Responses", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //#endregion

                //#region ReservationStart/-Stop

                //RegisterEvent("ReservationStartRequest",
                //              handler => CentralClient.OnAuthorizeRemoteReservationStartSOAPRequest  += handler,
                //              handler => CentralClient.OnAuthorizeRemoteReservationStartSOAPRequest  -= handler,
                //              "ReservationStart", "Reservation", "Requests", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //RegisterEvent("ReservationStartResponse",
                //              handler => CentralClient.OnAuthorizeRemoteReservationStartSOAPResponse += handler,
                //              handler => CentralClient.OnAuthorizeRemoteReservationStartSOAPResponse -= handler,
                //              "ReservationStart", "Reservation", "Responses", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);


                //RegisterEvent("ReservationStopRequest",
                //              handler => CentralClient.OnAuthorizeRemoteReservationStopSOAPRequest += handler,
                //              handler => CentralClient.OnAuthorizeRemoteReservationStopSOAPRequest -= handler,
                //              "ReservationStop", "Reservation", "Requests", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //RegisterEvent("ReservationStopResponse",
                //              handler => CentralClient.OnAuthorizeRemoteReservationStopSOAPResponse += handler,
                //              handler => CentralClient.OnAuthorizeRemoteReservationStopSOAPResponse -= handler,
                //              "ReservationStop", "Reservation", "Responses", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //#endregion

                //#region AuthorizeRemoteStart/-Stop

                //RegisterEvent("AuthorizeRemoteStartRequest",
                //              handler => CentralClient.OnAuthorizeRemoteStartSOAPRequest  += handler,
                //              handler => CentralClient.OnAuthorizeRemoteStartSOAPRequest  -= handler,
                //              "AuthorizeRemoteStart", "AuthorizeRemote", "Authorize", "Requests", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //RegisterEvent("AuthorizeRemoteStartResponse",
                //              handler => CentralClient.OnAuthorizeRemoteStartSOAPResponse += handler,
                //              handler => CentralClient.OnAuthorizeRemoteStartSOAPResponse -= handler,
                //              "AuthorizeRemoteStart", "AuthorizeRemote", "Authorize", "Responses", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);


                //RegisterEvent("AuthorizeRemoteStopRequest",
                //              handler => CentralClient.OnAuthorizeRemoteStopSOAPRequest += handler,
                //              handler => CentralClient.OnAuthorizeRemoteStopSOAPRequest -= handler,
                //              "AuthorizeRemoteStop", "AuthorizeRemote", "Authorize", "Requests", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //RegisterEvent("AuthorizeRemoteStopResponse",
                //              handler => CentralClient.OnAuthorizeRemoteStopSOAPResponse += handler,
                //              handler => CentralClient.OnAuthorizeRemoteStopSOAPResponse -= handler,
                //              "AuthorizeRemoteStop", "AuthorizeRemote", "Authorize", "Responses", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //#endregion

                //#region GetChargeDetailRecords

                //RegisterEvent("GetChargeDetailRecordsRequest",
                //              handler => CentralClient.OnGetChargeDetailRecordsSOAPRequest += handler,
                //              handler => CentralClient.OnGetChargeDetailRecordsSOAPRequest -= handler,
                //              "GetChargeDetailRecords", "Requests", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //RegisterEvent("GetChargeDetailRecordsResponse",
                //              handler => CentralClient.OnGetChargeDetailRecordsSOAPResponse += handler,
                //              handler => CentralClient.OnGetChargeDetailRecordsSOAPResponse -= handler,
                //              "GetChargeDetailRecords", "Responses", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //#endregion
            }
Пример #3
0
        /// <summary>
        /// Create a SMSAPI HTTP logger using the given logging delegates.
        /// </summary>
        /// <param name="SMSAPIClient">An SMSAPI client.</param>
        /// <param name="Context">A context of this API.</param>
        ///
        /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
        /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
        /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
        /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
        ///
        /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
        /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
        /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP client sent events source.</param>
        /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP client sent events source.</param>
        ///
        /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
        /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
        /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
        /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP client sent events source.</param>
        ///
        /// <param name="LogFileCreator">A delegate to create a log file from the given context and log file name.</param>
        public SMSAPIClientLogger(SMSAPIClient SMSAPIClient,
                                  String Context,

                                  HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                                  HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                                  HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                                  HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                                  HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                                  HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                                  HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                                  HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                                  HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                                  HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                                  HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                                  HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                                  LogfileCreatorDelegate LogFileCreator = null)

            : base(SMSAPIClient,
                   Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                   LogHTTPRequest_toConsole,
                   LogHTTPResponse_toConsole,
                   LogHTTPRequest_toDisc,
                   LogHTTPResponse_toDisc,

                   LogHTTPRequest_toNetwork,
                   LogHTTPResponse_toNetwork,
                   LogHTTPRequest_toHTTPSSE,
                   LogHTTPResponse_toHTTPSSE,

                   LogHTTPError_toConsole,
                   LogHTTPError_toDisc,
                   LogHTTPError_toNetwork,
                   LogHTTPError_toHTTPSSE,

                   LogFileCreator)

        {
            #region Initial checks

            this.SMSAPIClient = SMSAPIClient ?? throw new ArgumentNullException(nameof(SMSAPIClient), "The given SMSAPI client must not be null!");

            #endregion


            #region SIMHardware

            //RegisterEvent("SetSIMHardwareStateRequest",
            //              handler => SMSAPIClient.OnSetSIMHardwareStateRequest += handler,
            //              handler => SMSAPIClient.OnSetSIMHardwareStateRequest -= handler,
            //              "SetSIMHardwareState", "SIMHardware", "Requests", "All").
            //    RegisterDefaultConsoleLogTarget(this).
            //    RegisterDefaultDiscLogTarget(this);

            //RegisterEvent("SetSIMHardwareStateResponse",
            //              handler => SMSAPIClient.OnSetSIMHardwareStateResponse += handler,
            //              handler => SMSAPIClient.OnSetSIMHardwareStateResponse -= handler,
            //              "SetSIMHardwareState", "SIMHardware", "Responses", "All").
            //    RegisterDefaultConsoleLogTarget(this).
            //    RegisterDefaultDiscLogTarget(this);

            #endregion
        }
            /// <summary>
            /// Create a new OICP CPO client logger using the given logging delegates.
            /// </summary>
            /// <param name="CPOClient">A OICP CPO client.</param>
            /// <param name="Context">A context of this API.</param>
            ///
            /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
            /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
            /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
            /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
            ///
            /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
            /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
            /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP client sent events source.</param>
            /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP client sent events source.</param>
            ///
            /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
            /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
            /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
            /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP client sent events source.</param>
            ///
            /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
            public CPOClientLogger(ICPOClient CPOClient,
                                   String Context,

                                   HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                                   HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                                   HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                                   HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                                   HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                                   HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                                   HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                                   HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                                   HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                                   HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                                   HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                                   HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                                   LogfileCreatorDelegate LogfileCreator = null)

                : base(CPOClient,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                       LogHTTPRequest_toConsole,
                       LogHTTPResponse_toConsole,
                       LogHTTPRequest_toDisc,
                       LogHTTPResponse_toDisc,

                       LogHTTPRequest_toNetwork,
                       LogHTTPResponse_toNetwork,
                       LogHTTPRequest_toHTTPSSE,
                       LogHTTPResponse_toHTTPSSE,

                       LogHTTPError_toConsole,
                       LogHTTPError_toDisc,
                       LogHTTPError_toNetwork,
                       LogHTTPError_toHTTPSSE,

                       LogfileCreator)

            {
                #region Initial checks

                this.CPOClient = CPOClient ?? throw new ArgumentNullException(nameof(CPOClient), "The given CPO client must not be null!");

                #endregion

                #region Register log events

                // PushData/-Status

                RegisterEvent("PushEVSEDataRequest",
                              handler => CPOClient.OnPushEVSEDataSOAPRequest += handler,
                              handler => CPOClient.OnPushEVSEDataSOAPRequest -= handler,
                              "PushEVSEData", "EVSE", "EVSEData", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PushEVSEDataResponse",
                              handler => CPOClient.OnPushEVSEDataSOAPResponse += handler,
                              handler => CPOClient.OnPushEVSEDataSOAPResponse -= handler,
                              "PushEVSEData", "EVSE", "EVSEData", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("PushEVSEStatusRequest",
                              handler => CPOClient.OnPushEVSEStatusSOAPRequest += handler,
                              handler => CPOClient.OnPushEVSEStatusSOAPRequest -= handler,
                              "PushEVSEStatus", "EVSE", "AuthorizationStart", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PushEVSEStatusResponse",
                              handler => CPOClient.OnPushEVSEStatusSOAPResponse += handler,
                              handler => CPOClient.OnPushEVSEStatusSOAPResponse -= handler,
                              "PushEVSEStatus", "EVSE", "AuthorizationStart", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                // AuthorizeStart/-Stop

                RegisterEvent("AuthorizeStartRequest",
                              handler => CPOClient.OnAuthorizeStartSOAPRequest += handler,
                              handler => CPOClient.OnAuthorizeStartSOAPRequest -= handler,
                              "AuthorizeStart", "Authorize", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("AuthorizeStartResponse",
                              handler => CPOClient.OnAuthorizeStartSOAPResponse += handler,
                              handler => CPOClient.OnAuthorizeStartSOAPResponse -= handler,
                              "AuthorizeStart", "Authorize", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("AuthorizeStopRequest",
                              handler => CPOClient.OnAuthorizeStopSOAPRequest += handler,
                              handler => CPOClient.OnAuthorizeStopSOAPRequest -= handler,
                              "AuthorizeStop", "Authorize", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("AuthorizeStopResponse",
                              handler => CPOClient.OnAuthorizeStopSOAPResponse += handler,
                              handler => CPOClient.OnAuthorizeStopSOAPResponse -= handler,
                              "AuthorizeStop", "Authorize", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                // SendCDR / PullAuthenticationData

                RegisterEvent("SendChargeDetailRecordRequest",
                              handler => CPOClient.OnSendChargeDetailRecordSOAPRequest += handler,
                              handler => CPOClient.OnSendChargeDetailRecordSOAPRequest -= handler,
                              "SendChargeDetailRecord", "ChargeDetailRecord", "CDR", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("SendChargeDetailRecordResponse",
                              handler => CPOClient.OnSendChargeDetailRecordSOAPResponse += handler,
                              handler => CPOClient.OnSendChargeDetailRecordSOAPResponse -= handler,
                              "SendChargeDetailRecord", "ChargeDetailRecord", "CDR", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("PullAuthenticationDataRequest",
                              handler => CPOClient.OnPullAuthenticationDataSOAPRequest += handler,
                              handler => CPOClient.OnPullAuthenticationDataSOAPRequest -= handler,
                              "PullAuthenticationData", "AuthenticationData", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PullAuthenticationDataResponse",
                              handler => CPOClient.OnPullAuthenticationDataSOAPResponse += handler,
                              handler => CPOClient.OnPullAuthenticationDataSOAPResponse -= handler,
                              "PullAuthenticationData", "AuthenticationData", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion
            }
            /// <summary>
            /// Create a new OICP EMP client logger using the given logging delegates.
            /// </summary>
            /// <param name="EMPClient">A OICP EMP client.</param>
            /// <param name="Context">A context of this API.</param>
            ///
            /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
            /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
            /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
            /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
            ///
            /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
            /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
            /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP client sent events source.</param>
            /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP client sent events source.</param>
            ///
            /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
            /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
            /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
            /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP client sent events source.</param>
            ///
            /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
            public EMPClientLogger(IEMPClient EMPClient,
                                   String Context,

                                   HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                                   HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                                   HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                                   HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                                   HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                                   HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                                   HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                                   HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                                   HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                                   HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                                   HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                                   HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                                   LogfileCreatorDelegate LogfileCreator = null)

                : base(EMPClient,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                       LogHTTPRequest_toConsole,
                       LogHTTPResponse_toConsole,
                       LogHTTPRequest_toDisc,
                       LogHTTPResponse_toDisc,

                       LogHTTPRequest_toNetwork,
                       LogHTTPResponse_toNetwork,
                       LogHTTPRequest_toHTTPSSE,
                       LogHTTPResponse_toHTTPSSE,

                       LogHTTPError_toConsole,
                       LogHTTPError_toDisc,
                       LogHTTPError_toNetwork,
                       LogHTTPError_toHTTPSSE,

                       LogfileCreator)

            {
                #region Initial checks

                this.EMPClient = EMPClient ?? throw new ArgumentNullException(nameof(EMPClient), "The given EMP client must not be null!");

                #endregion

                #region Register log events

                // PullEVSEData/-Status

                RegisterEvent("PullEVSEDataRequest",
                              handler => EMPClient.OnPullEVSEDataSOAPRequest += handler,
                              handler => EMPClient.OnPullEVSEDataSOAPRequest -= handler,
                              "PullEVSEData", "EVSE", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PullEVSEDataResponse",
                              handler => EMPClient.OnPullEVSEDataSOAPResponse += handler,
                              handler => EMPClient.OnPullEVSEDataSOAPResponse -= handler,
                              "PullEVSEData", "EVSE", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("PullEVSEStatusRequest",
                              handler => EMPClient.OnPullEVSEStatusSOAPRequest += handler,
                              handler => EMPClient.OnPullEVSEStatusSOAPRequest -= handler,
                              "PullEVSEStatus", "EVSE", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PullEVSEStatusResponse",
                              handler => EMPClient.OnPullEVSEStatusSOAPResponse += handler,
                              handler => EMPClient.OnPullEVSEStatusSOAPResponse -= handler,
                              "PullEVSEStatus", "EVSE", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("PullEVSEStatusByIdRequest",
                              handler => EMPClient.OnPullEVSEStatusByIdSOAPRequest += handler,
                              handler => EMPClient.OnPullEVSEStatusByIdSOAPRequest -= handler,
                              "PullEVSEStatusById", "EVSE", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PullEVSEStatusByIdResponse",
                              handler => EMPClient.OnPullEVSEStatusByIdSOAPResponse += handler,
                              handler => EMPClient.OnPullEVSEStatusByIdSOAPResponse -= handler,
                              "PullEVSEStatusById", "EVSE", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                // PushAuthenticationData

                RegisterEvent("PushAuthenticationDataRequest",
                              handler => EMPClient.OnPushAuthenticationDataSOAPRequest += handler,
                              handler => EMPClient.OnPushAuthenticationDataSOAPRequest -= handler,
                              "PushAuthenticationData", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PushAuthenticationDataResponse",
                              handler => EMPClient.OnPushAuthenticationDataSOAPResponse += handler,
                              handler => EMPClient.OnPushAuthenticationDataSOAPResponse -= handler,
                              "PushAuthenticationData", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                // ReservationStart/-Stop

                RegisterEvent("ReservationStartRequest",
                              handler => EMPClient.OnAuthorizeRemoteReservationStartSOAPRequest += handler,
                              handler => EMPClient.OnAuthorizeRemoteReservationStartSOAPRequest -= handler,
                              "ReservationStart", "Reservation", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("ReservationStartResponse",
                              handler => EMPClient.OnAuthorizeRemoteReservationStartSOAPResponse += handler,
                              handler => EMPClient.OnAuthorizeRemoteReservationStartSOAPResponse -= handler,
                              "ReservationStart", "Reservation", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("ReservationStopRequest",
                              handler => EMPClient.OnAuthorizeRemoteReservationStopSOAPRequest += handler,
                              handler => EMPClient.OnAuthorizeRemoteReservationStopSOAPRequest -= handler,
                              "ReservationStop", "Reservation", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("ReservationStopResponse",
                              handler => EMPClient.OnAuthorizeRemoteReservationStopSOAPResponse += handler,
                              handler => EMPClient.OnAuthorizeRemoteReservationStopSOAPResponse -= handler,
                              "ReservationStop", "Reservation", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                // AuthorizeRemoteStart/-Stop

                RegisterEvent("AuthorizeRemoteStartRequest",
                              handler => EMPClient.OnAuthorizeRemoteStartSOAPRequest += handler,
                              handler => EMPClient.OnAuthorizeRemoteStartSOAPRequest -= handler,
                              "AuthorizeRemoteStart", "AuthorizeRemote", "Authorize", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("AuthorizeRemoteStartResponse",
                              handler => EMPClient.OnAuthorizeRemoteStartSOAPResponse += handler,
                              handler => EMPClient.OnAuthorizeRemoteStartSOAPResponse -= handler,
                              "AuthorizeRemoteStart", "AuthorizeRemote", "Authorize", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("AuthorizeRemoteStopRequest",
                              handler => EMPClient.OnAuthorizeRemoteStopSOAPRequest += handler,
                              handler => EMPClient.OnAuthorizeRemoteStopSOAPRequest -= handler,
                              "AuthorizeRemoteStop", "AuthorizeRemote", "Authorize", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("AuthorizeRemoteStopResponse",
                              handler => EMPClient.OnAuthorizeRemoteStopSOAPResponse += handler,
                              handler => EMPClient.OnAuthorizeRemoteStopSOAPResponse -= handler,
                              "AuthorizeRemoteStop", "AuthorizeRemote", "Authorize", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                // GetChargeDetailRecords

                RegisterEvent("GetChargeDetailRecordsRequest",
                              handler => EMPClient.OnGetChargeDetailRecordsSOAPRequest += handler,
                              handler => EMPClient.OnGetChargeDetailRecordsSOAPRequest -= handler,
                              "GetChargeDetailRecords", "ChargeDetailRecords", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetChargeDetailRecordsResponse",
                              handler => EMPClient.OnGetChargeDetailRecordsSOAPResponse += handler,
                              handler => EMPClient.OnGetChargeDetailRecordsSOAPResponse -= handler,
                              "GetChargeDetailRecords", "ChargeDetailRecords", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion
            }
Пример #6
0
            /// <summary>
            /// Create a new OICP Mobile client logger using the given logging delegates.
            /// </summary>
            /// <param name="MobileClient">A OICP Mobile client.</param>
            /// <param name="Context">A context of this API.</param>
            ///
            /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
            /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
            /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
            /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
            ///
            /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
            /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
            /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP client sent events source.</param>
            /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP client sent events source.</param>
            ///
            /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
            /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
            /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
            /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP client sent events source.</param>
            ///
            /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
            public MobileClientLogger(IMobileClient MobileClient,
                                      String Context,

                                      HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                                      HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                                      HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                                      HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                                      HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                                      HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                                      HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                                      HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                                      HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                                      HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                                      HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                                      HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                                      LogfileCreatorDelegate LogfileCreator = null)

                : base(MobileClient,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                       LogHTTPRequest_toConsole,
                       LogHTTPResponse_toConsole,
                       LogHTTPRequest_toDisc,
                       LogHTTPResponse_toDisc,

                       LogHTTPRequest_toNetwork,
                       LogHTTPResponse_toNetwork,
                       LogHTTPRequest_toHTTPSSE,
                       LogHTTPResponse_toHTTPSSE,

                       LogHTTPError_toConsole,
                       LogHTTPError_toDisc,
                       LogHTTPError_toNetwork,
                       LogHTTPError_toHTTPSSE,

                       LogfileCreator)

            {
                #region Initial checks

                this.MobileClient = MobileClient ?? throw new ArgumentNullException(nameof(MobileClient), "The given mobile client must not be null!");

                #endregion

                #region Register EVSE data/status push log events

                RegisterEvent("MobileAuthorizeStart",
                              handler => MobileClient.OnMobileAuthorizeStartSOAPRequest += handler,
                              handler => MobileClient.OnMobileAuthorizeStartSOAPRequest -= handler,
                              "Mobile", "Authorize", "AuthorizeStart", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("MobileAuthorizeStarted",
                              handler => MobileClient.OnMobileAuthorizeStartSOAPResponse += handler,
                              handler => MobileClient.OnMobileAuthorizeStartSOAPResponse -= handler,
                              "Mobile", "Authorize", "AuthorizeStart", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("MobileRemoteStart",
                              handler => MobileClient.OnMobileRemoteStartSOAPRequest += handler,
                              handler => MobileClient.OnMobileRemoteStartSOAPRequest -= handler,
                              "Mobile", "Remote", "RemoteStart", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("MobileRemoteStarted",
                              handler => MobileClient.OnMobileRemoteStartSOAPResponse += handler,
                              handler => MobileClient.OnMobileRemoteStartSOAPResponse -= handler,
                              "Mobile", "Remote", "RemoteStart", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("MobileRemoteStop",
                              handler => MobileClient.OnMobileRemoteStopSOAPRequest += handler,
                              handler => MobileClient.OnMobileRemoteStopSOAPRequest -= handler,
                              "Mobile", "Remote", "RemoteStop", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("MobileRemoteStopped",
                              handler => MobileClient.OnMobileRemoteStopSOAPResponse += handler,
                              handler => MobileClient.OnMobileRemoteStopSOAPResponse -= handler,
                              "Mobile", "Remote", "RemoteStop", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion
            }
Пример #7
0
            /// <summary>
            /// Create a new EMP Server API logger using the given logging delegates.
            /// </summary>
            /// <param name="EMPServerAPI">An EMP Server API.</param>
            /// <param name="LoggingPath">The logging path.</param>
            /// <param name="Context">A context of this API.</param>
            ///
            /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
            /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
            /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
            /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
            ///
            /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
            /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
            /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP server sent events source.</param>
            /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP server sent events source.</param>
            ///
            /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
            /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
            /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
            /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP server sent events source.</param>
            ///
            /// <param name="LogFileCreator">A delegate to create a log file from the given context and log file name.</param>
            public Logger(EMPServerAPI EMPServerAPI,
                          String LoggingPath,
                          String Context,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                          HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                          LogfileCreatorDelegate LogFileCreator = null)

                : base(EMPServerAPI.HTTPServer,
                       LoggingPath,
                       Context,

                       LogHTTPRequest_toConsole,
                       LogHTTPResponse_toConsole,
                       LogHTTPRequest_toDisc,
                       LogHTTPResponse_toDisc,

                       LogHTTPRequest_toNetwork,
                       LogHTTPResponse_toNetwork,
                       LogHTTPRequest_toHTTPSSE,
                       LogHTTPResponse_toHTTPSSE,

                       LogHTTPError_toConsole,
                       LogHTTPError_toDisc,
                       LogHTTPError_toNetwork,
                       LogHTTPError_toHTTPSSE,

                       LogFileCreator)

            {
                this.EMPServerAPI = EMPServerAPI ?? throw new ArgumentNullException(nameof(EMPServerAPI), "The given EMP Server API must not be null!");

                #region AuthorizeStart/-Stop

                RegisterEvent2("AuthorizeStartRequest",
                               handler => EMPServerAPI.OnAuthorizeStartHTTPRequest += handler,
                               handler => EMPServerAPI.OnAuthorizeStartHTTPRequest -= handler,
                               "AuthorizeStart", "authorize", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent2("AuthorizationStartResponse",
                               handler => EMPServerAPI.OnAuthorizationStartHTTPResponse += handler,
                               handler => EMPServerAPI.OnAuthorizationStartHTTPResponse -= handler,
                               "AuthorizeStart", "authorize", "authorization", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent2("AuthorizeStopRequest",
                               handler => EMPServerAPI.OnAuthorizeStopHTTPRequest += handler,
                               handler => EMPServerAPI.OnAuthorizeStopHTTPRequest -= handler,
                               "AuthorizeStop", "authorize", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent2("AuthorizationStopResponse",
                               handler => EMPServerAPI.OnAuthorizationStopHTTPResponse += handler,
                               handler => EMPServerAPI.OnAuthorizationStopHTTPResponse -= handler,
                               "AuthorizeStop", "authorize", "authorization", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion

                #region ChargingNotification

                RegisterEvent2("ChargingNotificationRequest",
                               handler => EMPServerAPI.OnChargingNotificationsHTTPRequest += handler,
                               handler => EMPServerAPI.OnChargingNotificationsHTTPRequest -= handler,
                               "ChargingNotification", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent2("ChargingNotificationResponse",
                               handler => EMPServerAPI.OnChargingNotificationsHTTPResponse += handler,
                               handler => EMPServerAPI.OnChargingNotificationsHTTPResponse -= handler,
                               "ChargingNotification", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion

                #region Charge Detail Record

                RegisterEvent2("ChargeDetailRecordRequest",
                               handler => EMPServerAPI.OnChargeDetailRecordHTTPRequest += handler,
                               handler => EMPServerAPI.OnChargeDetailRecordHTTPRequest -= handler,
                               "ChargeDetailRecord", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent2("ChargeDetailRecordResponse",
                               handler => EMPServerAPI.OnChargeDetailRecordHTTPResponse += handler,
                               handler => EMPServerAPI.OnChargeDetailRecordHTTPResponse -= handler,
                               "ChargeDetailRecord", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion
            }
Пример #8
0
            /// <summary>
            /// Create a new CP client logger using the given logging delegates.
            /// </summary>
            /// <param name="CPClient">A OCPP CP client.</param>
            /// <param name="Context">A context of this API.</param>
            ///
            /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
            /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
            /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
            /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
            ///
            /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
            /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
            /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP client sent events source.</param>
            /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP client sent events source.</param>
            ///
            /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
            /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
            /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
            /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP client sent events source.</param>
            ///
            /// <param name="LogFileCreator">A delegate to create a log file from the given context and log file name.</param>
            public CPClientLogger(ICPClient CPClient,
                                  String Context,

                                  HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                                  HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                                  HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                                  HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                                  HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                                  HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                                  HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                                  HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                                  HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                                  HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                                  HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                                  HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                                  LogfileCreatorDelegate LogFileCreator = null)

                : base(CPClient,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                       LogHTTPRequest_toConsole,
                       LogHTTPResponse_toConsole,
                       LogHTTPRequest_toDisc,
                       LogHTTPResponse_toDisc,

                       LogHTTPRequest_toNetwork,
                       LogHTTPResponse_toNetwork,
                       LogHTTPRequest_toHTTPSSE,
                       LogHTTPResponse_toHTTPSSE,

                       LogHTTPError_toConsole,
                       LogHTTPError_toDisc,
                       LogHTTPError_toNetwork,
                       LogHTTPError_toHTTPSSE,

                       LogFileCreator)

            {
                #region Initial checks

                this.CPClient = CPClient ?? throw new ArgumentNullException(nameof(CPClient), "The given EMP client must not be null!");

                #endregion


                //#region GetChargePointList

                //RegisterEvent("GetChargePointListRequest",
                //              handler => CPClient.OnGetChargePointListSOAPRequest += handler,
                //              handler => CPClient.OnGetChargePointListSOAPRequest -= handler,
                //              "GetChargePointList", "OCPP", "Requests", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //RegisterEvent("GetChargePointListResponse",
                //              handler => CPClient.OnGetChargePointListSOAPResponse += handler,
                //              handler => CPClient.OnGetChargePointListSOAPResponse -= handler,
                //              "GetChargePointList", "OCPP", "Responses", "All").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //#endregion
            }
        /// <summary>
        /// Create a new OICP EMP server logger using the given logging delegates.
        /// </summary>
        /// <param name="EMPServer">A OICP EMP server.</param>
        /// <param name="Context">A context of this API.</param>
        ///
        /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
        /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
        /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
        /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
        ///
        /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
        /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
        /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP server sent events source.</param>
        /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP server sent events source.</param>
        ///
        /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
        /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
        /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
        /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP server sent events source.</param>
        ///
        /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
        public EMPServerLogger(EMPSOAPServer EMPServer,
                               String Context,

                               HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                               HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                               HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                               HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                               HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                               HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                               HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                               HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                               HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                               HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                               HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                               HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                               LogfileCreatorDelegate LogfileCreator = null)

            : base(EMPServer?.SOAPServer.HTTPServer,
                   Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                   LogHTTPRequest_toConsole,
                   LogHTTPResponse_toConsole,
                   LogHTTPRequest_toDisc,
                   LogHTTPResponse_toDisc,

                   LogHTTPRequest_toNetwork,
                   LogHTTPResponse_toNetwork,
                   LogHTTPRequest_toHTTPSSE,
                   LogHTTPResponse_toHTTPSSE,

                   LogHTTPError_toConsole,
                   LogHTTPError_toDisc,
                   LogHTTPError_toNetwork,
                   LogHTTPError_toHTTPSSE,

                   LogfileCreator)

        {
            #region Initial checks

            this.EMPServer = EMPServer ?? throw new ArgumentNullException(nameof(EMPServer), "The given EMP server must not be null!");

            #endregion

            #region Register log events

            // AuthorizeStart/-Stop

            RegisterEvent("AuthorizeStartRequest",
                          handler => EMPServer.OnAuthorizeStartSOAPRequest += handler,
                          handler => EMPServer.OnAuthorizeStartSOAPRequest -= handler,
                          "AuthorizeStart", "Authorize", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("AuthorizeStartResponse",
                          handler => EMPServer.OnAuthorizeStartSOAPResponse += handler,
                          handler => EMPServer.OnAuthorizeStartSOAPResponse -= handler,
                          "AuthorizeStart", "Authorize", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("AuthorizeStopRequest",
                          handler => EMPServer.OnAuthorizeStopSOAPRequest += handler,
                          handler => EMPServer.OnAuthorizeStopSOAPRequest -= handler,
                          "AuthorizeStop", "Authorize", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("AuthorizeStopResponse",
                          handler => EMPServer.OnAuthorizeStopSOAPResponse += handler,
                          handler => EMPServer.OnAuthorizeStopSOAPResponse -= handler,
                          "AuthorizeStop", "Authorize", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            // ChargeDetailRecord

            RegisterEvent("ChargeDetailRecordRequest",
                          handler => EMPServer.OnChargeDetailRecordSOAPRequest += handler,
                          handler => EMPServer.OnChargeDetailRecordSOAPRequest -= handler,
                          "ChargeDetailRecord", "CDR", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("ChargeDetailRecordResponse",
                          handler => EMPServer.OnChargeDetailRecordSOAPResponse += handler,
                          handler => EMPServer.OnChargeDetailRecordSOAPResponse -= handler,
                          "ChargeDetailRecord", "CDR", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion
        }
Пример #10
0
        /// <summary>
        /// Create a new OICP Central server logger using the given logging delegates.
        /// </summary>
        /// <param name="CentralServer">A OICP Central server.</param>
        /// <param name="Context">A context of this API.</param>
        ///
        /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
        /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
        /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
        /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
        ///
        /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
        /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
        /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP server sent events source.</param>
        /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP server sent events source.</param>
        ///
        /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
        /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
        /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
        /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP server sent events source.</param>
        ///
        /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
        public CentralServerLogger(CentralServer CentralServer,
                                   String Context,

                                   HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                                   HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                                   HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                                   HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                                   HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                                   HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                                   HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                                   HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                                   HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                                   HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                                   HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                                   HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                                   LogfileCreatorDelegate LogfileCreator = null)

            : base(CentralServer.SOAPServer.HTTPServer,
                   Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                   LogHTTPRequest_toConsole,
                   LogHTTPResponse_toConsole,
                   LogHTTPRequest_toDisc,
                   LogHTTPResponse_toDisc,

                   LogHTTPRequest_toNetwork,
                   LogHTTPResponse_toNetwork,
                   LogHTTPRequest_toHTTPSSE,
                   LogHTTPResponse_toHTTPSSE,

                   LogHTTPError_toConsole,
                   LogHTTPError_toDisc,
                   LogHTTPError_toNetwork,
                   LogHTTPError_toHTTPSSE,

                   LogfileCreator)

        {
            #region Initial checks

            if (CentralServer == null)
            {
                throw new ArgumentNullException(nameof(CentralServer), "The given Central server must not be null!");
            }

            #endregion

            this.CentralServer = CentralServer;

            #region Register remote start/stop log events

            RegisterEvent("RemoteReservationStart",
                          handler => CentralServer.OnAuthorizeRemoteReservationStartSOAPRequest += handler,
                          handler => CentralServer.OnAuthorizeRemoteReservationStartSOAPRequest -= handler,
                          "Reservation", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("RemoteReservationStarted",
                          handler => CentralServer.OnAuthorizeRemoteReservationStartSOAPResponse += handler,
                          handler => CentralServer.OnAuthorizeRemoteReservationStartSOAPResponse -= handler,
                          "Reservation", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("RemoteReservationStop",
                          handler => CentralServer.OnAuthorizeRemoteReservationStopSOAPRequest += handler,
                          handler => CentralServer.OnAuthorizeRemoteReservationStopSOAPRequest -= handler,
                          "Reservation", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("RemoteReservationStopped",
                          handler => CentralServer.OnAuthorizeRemoteReservationStopSOAPResponse += handler,
                          handler => CentralServer.OnAuthorizeRemoteReservationStopSOAPResponse -= handler,
                          "Reservation", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("RemoteStart",
                          handler => CentralServer.OnAuthorizeRemoteStartSOAPResponse += handler,
                          handler => CentralServer.OnAuthorizeRemoteStartSOAPResponse -= handler,
                          "Remote", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("RemoteStarted",
                          handler => CentralServer.OnAuthorizeRemoteStartSOAPResponse += handler,
                          handler => CentralServer.OnAuthorizeRemoteStartSOAPResponse -= handler,
                          "Remote", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("RemoteStop",
                          handler => CentralServer.OnAuthorizeRemoteStopSOAPResponse += handler,
                          handler => CentralServer.OnAuthorizeRemoteStopSOAPResponse -= handler,
                          "Remote", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("RemoteStopped",
                          handler => CentralServer.OnAuthorizeRemoteStopSOAPResponse += handler,
                          handler => CentralServer.OnAuthorizeRemoteStopSOAPResponse -= handler,
                          "Remote", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion
        }
Пример #11
0
        /// <summary>
        /// Create a new eMIP CPO server logger using the given logging delegates.
        /// </summary>
        /// <param name="CPOServer">A eMIP CPO server.</param>
        /// <param name="LoggingPath">The logging path.</param>
        /// <param name="Context">A context of this API.</param>
        ///
        /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
        /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
        /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
        /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
        ///
        /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
        /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
        /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP server sent events source.</param>
        /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP server sent events source.</param>
        ///
        /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
        /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
        /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
        /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP server sent events source.</param>
        ///
        /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
        public CPOServerLogger(CPOServer CPOServer,
                               String LoggingPath,
                               String Context,

                               HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                               HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                               HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                               HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                               HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                               HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                               HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                               HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                               HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                               HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                               HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                               HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                               LogfileCreatorDelegate LogfileCreator = null)

            : base(CPOServer.SOAPServer.HTTPServer,
                   LoggingPath,
                   Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                   LogHTTPRequest_toConsole,
                   LogHTTPResponse_toConsole,
                   LogHTTPRequest_toDisc,
                   LogHTTPResponse_toDisc,

                   LogHTTPRequest_toNetwork,
                   LogHTTPResponse_toNetwork,
                   LogHTTPRequest_toHTTPSSE,
                   LogHTTPResponse_toHTTPSSE,

                   LogHTTPError_toConsole,
                   LogHTTPError_toDisc,
                   LogHTTPError_toNetwork,
                   LogHTTPError_toHTTPSSE,

                   LogfileCreator)

        {
            this.CPOServer = CPOServer ?? throw new ArgumentNullException(nameof(CPOServer), "The given CPO server must not be null!");

            #region Register SetServiceAuthorisation log events

            RegisterEvent("SetServiceAuthorisationRequest",
                          handler => CPOServer.OnSetServiceAuthorisationSOAPRequest += handler,
                          handler => CPOServer.OnSetServiceAuthorisationSOAPRequest -= handler,
                          "SetServiceAuthorisation", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("SetServiceAuthorisationResponse",
                          handler => CPOServer.OnSetServiceAuthorisationSOAPResponse += handler,
                          handler => CPOServer.OnSetServiceAuthorisationSOAPResponse -= handler,
                          "SetServiceAuthorisation", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion

            #region Register SetSessionAction log events

            RegisterEvent("SetSessionActionRequest",
                          handler => CPOServer.OnSetSessionActionSOAPRequest += handler,
                          handler => CPOServer.OnSetSessionActionSOAPRequest -= handler,
                          "SetSessionAction", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("SetSessionActionResponse",
                          handler => CPOServer.OnSetSessionActionSOAPResponse += handler,
                          handler => CPOServer.OnSetSessionActionSOAPResponse -= handler,
                          "SetSessionAction", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion
        }
Пример #12
0
            /// <summary>
            /// Create a new CPO client logger using the given logging delegates.
            /// </summary>
            /// <param name="CPOClient">A CPO client.</param>
            /// <param name="LoggingPath">The logging path.</param>
            /// <param name="Context">A context of this API.</param>
            ///
            /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
            /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
            /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
            /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
            ///
            /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
            /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
            /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP client sent events source.</param>
            /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP client sent events source.</param>
            ///
            /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
            /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
            /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
            /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP client sent events source.</param>
            ///
            /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
            public Logger(CPOClient CPOClient,
                          String LoggingPath,
                          String Context,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                          HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                          LogfileCreatorDelegate LogfileCreator = null)

                : base(CPOClient,
                       LoggingPath,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                       LogHTTPRequest_toConsole,
                       LogHTTPResponse_toConsole,
                       LogHTTPRequest_toDisc,
                       LogHTTPResponse_toDisc,

                       LogHTTPRequest_toNetwork,
                       LogHTTPResponse_toNetwork,
                       LogHTTPRequest_toHTTPSSE,
                       LogHTTPResponse_toHTTPSSE,

                       LogHTTPError_toConsole,
                       LogHTTPError_toDisc,
                       LogHTTPError_toNetwork,
                       LogHTTPError_toHTTPSSE,

                       LogfileCreator)

            {
                this.CPOClient = CPOClient ?? throw new ArgumentNullException(nameof(CPOClient), "The given CPO client must not be null!");

                #region Register log events

                //RegisterEvent("SendHeartbeatRequest",
                //              handler => CPOClient.OnSendHeartbeatSOAPRequest  += handler,
                //              handler => CPOClient.OnSendHeartbeatSOAPRequest  -= handler,
                //              "SendHeartbeat", "Heartbeat", "requests", "all").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //RegisterEvent("SendHeartbeatResponse",
                //              handler => CPOClient.OnSendHeartbeatSOAPResponse += handler,
                //              handler => CPOClient.OnSendHeartbeatSOAPResponse -= handler,
                //              "SendHeartbeat", "Heartbeat", "Response", "all").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);


                #endregion
            }
Пример #13
0
            /// <summary>
            /// Create a new eMIP EMP client logger using the given logging delegates.
            /// </summary>
            /// <param name="EMPClient">A eMIP EMP client.</param>
            /// <param name="LoggingPath">The logging path.</param>
            /// <param name="Context">A context of this API.</param>
            ///
            /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
            /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
            /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
            /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
            ///
            /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
            /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
            /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP client sent events source.</param>
            /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP client sent events source.</param>
            ///
            /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
            /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
            /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
            /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP client sent events source.</param>
            ///
            /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
            public Logger(IEMPClient EMPClient,
                          String LoggingPath,
                          String Context,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                          HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                          LogfileCreatorDelegate LogfileCreator = null)

                : base(EMPClient,
                       LoggingPath,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                       LogHTTPRequest_toConsole,
                       LogHTTPResponse_toConsole,
                       LogHTTPRequest_toDisc,
                       LogHTTPResponse_toDisc,

                       LogHTTPRequest_toNetwork,
                       LogHTTPResponse_toNetwork,
                       LogHTTPRequest_toHTTPSSE,
                       LogHTTPResponse_toHTTPSSE,

                       LogHTTPError_toConsole,
                       LogHTTPError_toDisc,
                       LogHTTPError_toNetwork,
                       LogHTTPError_toHTTPSSE,

                       LogfileCreator)

            {
                #region Initial checks

                this.EMPClient = EMPClient ?? throw new ArgumentNullException(nameof(EMPClient), "The given EMP client must not be null!");

                #endregion

                #region Register log events

                RegisterEvent("SendHeartbeatRequest",
                              handler => EMPClient.OnSendHeartbeatSOAPRequest += handler,
                              handler => EMPClient.OnSendHeartbeatSOAPRequest -= handler,
                              "SendHeartbeat", "Heartbeat", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("SendHeartbeatResponse",
                              handler => EMPClient.OnSendHeartbeatSOAPResponse += handler,
                              handler => EMPClient.OnSendHeartbeatSOAPResponse -= handler,
                              "SendHeartbeat", "Heartbeat", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);



                RegisterEvent("SetServiceAuthorisationRequest",
                              handler => EMPClient.OnSetServiceAuthorisationSOAPRequest += handler,
                              handler => EMPClient.OnSetServiceAuthorisationSOAPRequest -= handler,
                              "SetServiceAuthorisation", "ServiceAuthorisation", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("SetServiceAuthorisationResponse",
                              handler => EMPClient.OnSetServiceAuthorisationSOAPResponse += handler,
                              handler => EMPClient.OnSetServiceAuthorisationSOAPResponse -= handler,
                              "SetServiceAuthorisation", "ServiceAuthorisation", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("SetSessionActionRequest",
                              handler => EMPClient.OnSetSessionActionSOAPRequest += handler,
                              handler => EMPClient.OnSetSessionActionSOAPRequest -= handler,
                              "SetSessionAction", "SessionAction", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("SetSessionActionResponse",
                              handler => EMPClient.OnSetSessionActionSOAPResponse += handler,
                              handler => EMPClient.OnSetSessionActionSOAPResponse -= handler,
                              "SetSessionAction", "SessionAction", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion
            }
        /// <summary>
        /// Create a new WWCP HTTP API logger using the given logging delegates.
        /// </summary>
        /// <param name="OpenChargingCloudAPI">A WWCP API.</param>
        /// <param name="Context">A context of this API.</param>
        ///
        /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
        /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
        /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
        /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
        ///
        /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
        /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
        /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP server sent events source.</param>
        /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP server sent events source.</param>
        ///
        /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
        /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
        /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
        /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP server sent events source.</param>
        ///
        /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
        public OpenChargingCloudAPILogger(OpenChargingCloudAPI OpenChargingCloudAPI,
                                          String Context,

                                          HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                                          HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                                          HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                                          HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                                          HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                                          HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                                          HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                                          HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                                          HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                                          HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                                          HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                                          HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                                          LogfileCreatorDelegate LogfileCreator = null)

            : base(OpenChargingCloudAPI.HTTPServer,//.InternalHTTPServer,
                   Context,

                   LogHTTPRequest_toConsole,
                   LogHTTPResponse_toConsole,
                   LogHTTPRequest_toDisc,
                   LogHTTPResponse_toDisc,

                   LogHTTPRequest_toNetwork,
                   LogHTTPResponse_toNetwork,
                   LogHTTPRequest_toHTTPSSE,
                   LogHTTPResponse_toHTTPSSE,

                   LogHTTPError_toConsole,
                   LogHTTPError_toDisc,
                   LogHTTPError_toNetwork,
                   LogHTTPError_toHTTPSSE,

                   LogfileCreator)

        {
            #region Initial checks

            if (OpenChargingCloudAPI == null)
            {
                throw new ArgumentNullException(nameof(OpenChargingCloudAPI), "The given WWCP HTTP API must not be null!");
            }

            #endregion

            this.OpenChargingCloudAPI = OpenChargingCloudAPI;

            #region EVSEs

            RegisterEvent2("GetEVSEsStatusRequest",
                           handler => OpenChargingCloudAPI.OnGetEVSEsStatusRequest += handler,
                           handler => OpenChargingCloudAPI.OnGetEVSEsStatusRequest -= handler,
                           "EVSEStatus", "EVSE", "Status", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            //RegisterEvent2("GetEVSEsStatusResponse",
            //               handler => OpenChargingCloudAPI.OnGetEVSEsStatusResponse += handler,
            //               handler => OpenChargingCloudAPI.OnGetEVSEsStatusResponse -= handler,
            //               "EVSEStatus", "EVSE", "Status", "Response", "All").
            //    RegisterDefaultConsoleLogTarget(this).
            //    RegisterDefaultDiscLogTarget(this);

            #endregion


            #region Register auth start/stop log events

            RegisterEvent2("AuthEVSEStart",
                           handler => OpenChargingCloudAPI.OnAuthStartEVSERequest += handler,
                           handler => OpenChargingCloudAPI.OnAuthStartEVSERequest -= handler,
                           "Auth", "AuthEVSE", "AuthStart", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("AuthEVSEStarted",
                           handler => OpenChargingCloudAPI.OnAuthStartEVSEResponse += handler,
                           handler => OpenChargingCloudAPI.OnAuthStartEVSEResponse -= handler,
                           "Auth", "AuthEVSE", "AuthStarted", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("AuthEVSEStop",
                           handler => OpenChargingCloudAPI.OnAuthStopEVSERequest += handler,
                           handler => OpenChargingCloudAPI.OnAuthStopEVSERequest -= handler,
                           "Auth", "AuthEVSE", "AuthStop", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("AuthEVSEStopped",
                           handler => OpenChargingCloudAPI.OnAuthStopEVSEResponse += handler,
                           handler => OpenChargingCloudAPI.OnAuthStopEVSEResponse -= handler,
                           "Auth", "AuthEVSE", "AuthStopped", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion

            #region Register remote start/stop log events

            RegisterEvent2("RemoteEVSEStart",
                           handler => OpenChargingCloudAPI.OnSendRemoteStartEVSERequest += handler,
                           handler => OpenChargingCloudAPI.OnSendRemoteStartEVSERequest -= handler,
                           "Remote", "RemoteEVSE", "RemoteStart", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("RemoteEVSEStarted",
                           handler => OpenChargingCloudAPI.OnSendRemoteStartEVSEResponse += handler,
                           handler => OpenChargingCloudAPI.OnSendRemoteStartEVSEResponse -= handler,
                           "Remote", "RemoteEVSE", "RemoteStarted", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("RemoteEVSEStop",
                           handler => OpenChargingCloudAPI.OnSendRemoteStopEVSERequest += handler,
                           handler => OpenChargingCloudAPI.OnSendRemoteStopEVSERequest -= handler,
                           "Remote", "RemoteEVSE", "RemoteStop", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("RemoteEVSEStopped",
                           handler => OpenChargingCloudAPI.OnSendRemoteStopEVSEResponse += handler,
                           handler => OpenChargingCloudAPI.OnSendRemoteStopEVSEResponse -= handler,
                           "Remote", "RemoteEVSE", "RemoteStopped", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion

            #region Register CDR log events

            RegisterEvent2("SendCDR",
                           handler => OpenChargingCloudAPI.OnSendCDRsRequest += handler,
                           handler => OpenChargingCloudAPI.OnSendCDRsRequest -= handler,
                           "CDR", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("CDRSent",
                           handler => OpenChargingCloudAPI.OnSendCDRsResponse += handler,
                           handler => OpenChargingCloudAPI.OnSendCDRsResponse -= handler,
                           "CDR", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion
        }
Пример #15
0
            /// <summary>
            /// Create a new EMP client logger using the given logging delegates.
            /// </summary>
            /// <param name="EMPClient">A EMP client.</param>
            /// <param name="LoggingPath">The logging path.</param>
            /// <param name="Context">A context of this API.</param>
            ///
            /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
            /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
            /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
            /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
            ///
            /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
            /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
            /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP client sent events source.</param>
            /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP client sent events source.</param>
            ///
            /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
            /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
            /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
            /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP client sent events source.</param>
            ///
            /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
            public Logger(EMPClient EMPClient,
                          String LoggingPath,
                          String Context,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                          HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                          LogfileCreatorDelegate LogfileCreator = null)

                : base(EMPClient,
                       LoggingPath,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                       LogHTTPRequest_toConsole,
                       LogHTTPResponse_toConsole,
                       LogHTTPRequest_toDisc,
                       LogHTTPResponse_toDisc,

                       LogHTTPRequest_toNetwork,
                       LogHTTPResponse_toNetwork,
                       LogHTTPRequest_toHTTPSSE,
                       LogHTTPResponse_toHTTPSSE,

                       LogHTTPError_toConsole,
                       LogHTTPError_toDisc,
                       LogHTTPError_toNetwork,
                       LogHTTPError_toHTTPSSE,

                       LogfileCreator)

            {
                this.EMPClient = EMPClient ?? throw new ArgumentNullException(nameof(EMPClient), "The given EMP client must not be null!");

                #region PullEVSEData/Status

                RegisterEvent("PullEVSEDataHTTPRequest",
                              handler => EMPClient.OnPullEVSEDataHTTPRequest += handler,
                              handler => EMPClient.OnPullEVSEDataHTTPRequest -= handler,
                              "PullEVSEData", "pull", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PullEVSEDataHTTPResponse",
                              handler => EMPClient.OnPullEVSEDataHTTPResponse += handler,
                              handler => EMPClient.OnPullEVSEDataHTTPResponse -= handler,
                              "PullEVSEData", "pull", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("PullEVSEStatusHTTPRequest",
                              handler => EMPClient.OnPullEVSEStatusHTTPRequest += handler,
                              handler => EMPClient.OnPullEVSEStatusHTTPRequest -= handler,
                              "PullEVSEStatus", "pull", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PullEVSEStatusHTTPResponse",
                              handler => EMPClient.OnPullEVSEStatusHTTPResponse += handler,
                              handler => EMPClient.OnPullEVSEStatusHTTPResponse -= handler,
                              "PullEVSEStatus", "pull", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("PullEVSEStatusByIdHTTPRequest",
                              handler => EMPClient.OnPullEVSEStatusByIdHTTPRequest += handler,
                              handler => EMPClient.OnPullEVSEStatusByIdHTTPRequest -= handler,
                              "PullEVSEStatusById", "pull", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PullEVSEStatusByIdHTTPResponse",
                              handler => EMPClient.OnPullEVSEStatusByIdHTTPResponse += handler,
                              handler => EMPClient.OnPullEVSEStatusByIdHTTPResponse -= handler,
                              "PullEVSEStatusById", "pull", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("PullEVSEStatusByOperatorIdHTTPRequest",
                              handler => EMPClient.OnPullEVSEStatusByOperatorIdHTTPRequest += handler,
                              handler => EMPClient.OnPullEVSEStatusByOperatorIdHTTPRequest -= handler,
                              "PullEVSEStatusByOperatorId", "pull", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PullEVSEStatusByOperatorIdHTTPResponse",
                              handler => EMPClient.OnPullEVSEStatusByOperatorIdHTTPResponse += handler,
                              handler => EMPClient.OnPullEVSEStatusByOperatorIdHTTPResponse -= handler,
                              "PullEVSEStatusByOperatorId", "pull", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion

                #region PushAuthenticationData

                //RegisterEvent("PushAuthenticationDataRequest",
                //              handler => EMPClient.OnPushAuthenticationDataHTTPRequest += handler,
                //              handler => EMPClient.OnPushAuthenticationDataHTTPRequest -= handler,
                //              "PushAuthenticationData", "requests", "all").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                //RegisterEvent("PushAuthenticationDataResponse",
                //              handler => EMPClient.OnPushAuthenticationDataHTTPResponse += handler,
                //              handler => EMPClient.OnPushAuthenticationDataHTTPResponse -= handler,
                //              "PushAuthenticationData", "responses", "all").
                //    RegisterDefaultConsoleLogTarget(this).
                //    RegisterDefaultDiscLogTarget(this);

                #endregion

                #region AuthorizeRemoteReservationStart/Stop

                RegisterEvent("AuthorizeRemoteReservationStartRequest",
                              handler => EMPClient.OnAuthorizeRemoteReservationStartHTTPRequest += handler,
                              handler => EMPClient.OnAuthorizeRemoteReservationStartHTTPRequest -= handler,
                              "AuthorizeRemoteReservationStart", "AuthorizeRemoteReservation", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("AuthorizeRemoteReservationStartResponse",
                              handler => EMPClient.OnAuthorizeRemoteReservationStartHTTPResponse += handler,
                              handler => EMPClient.OnAuthorizeRemoteReservationStartHTTPResponse -= handler,
                              "AuthorizeRemoteReservationStart", "AuthorizeRemoteReservation", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("AuthorizeRemoteReservationStopRequest",
                              handler => EMPClient.OnAuthorizeRemoteReservationStopHTTPRequest += handler,
                              handler => EMPClient.OnAuthorizeRemoteReservationStopHTTPRequest -= handler,
                              "AuthorizeRemoteReservationStop", "AuthorizeRemoteReservation", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("AuthorizeRemoteReservationStopResponse",
                              handler => EMPClient.OnAuthorizeRemoteReservationStopHTTPResponse += handler,
                              handler => EMPClient.OnAuthorizeRemoteReservationStopHTTPResponse -= handler,
                              "AuthorizeRemoteReservationStop", "AuthorizeRemoteReservation", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion

                #region AuthorizeRemoteStart/Stop

                RegisterEvent("AuthorizeRemoteStartRequest",
                              handler => EMPClient.OnAuthorizeRemoteStartHTTPRequest += handler,
                              handler => EMPClient.OnAuthorizeRemoteStartHTTPRequest -= handler,
                              "AuthorizeRemoteStart", "AuthorizeRemote", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("AuthorizeRemoteStartResponse",
                              handler => EMPClient.OnAuthorizeRemoteStartHTTPResponse += handler,
                              handler => EMPClient.OnAuthorizeRemoteStartHTTPResponse -= handler,
                              "AuthorizeRemoteStart", "AuthorizeRemote", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("AuthorizeRemoteStopRequest",
                              handler => EMPClient.OnAuthorizeRemoteStopHTTPRequest += handler,
                              handler => EMPClient.OnAuthorizeRemoteStopHTTPRequest -= handler,
                              "AuthorizeRemoteStop", "AuthorizeRemote", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("AuthorizeRemoteStopResponse",
                              handler => EMPClient.OnAuthorizeRemoteStopHTTPResponse += handler,
                              handler => EMPClient.OnAuthorizeRemoteStopHTTPResponse -= handler,
                              "AuthorizeRemoteStop", "AuthorizeRemote", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion

                #region GetChargeDetailRecords

                RegisterEvent("GetChargeDetailRecordsRequest",
                              handler => EMPClient.OnGetChargeDetailRecordsHTTPRequest += handler,
                              handler => EMPClient.OnGetChargeDetailRecordsHTTPRequest -= handler,
                              "GetChargeDetailRecords", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetChargeDetailRecordsResponse",
                              handler => EMPClient.OnGetChargeDetailRecordsHTTPResponse += handler,
                              handler => EMPClient.OnGetChargeDetailRecordsHTTPResponse -= handler,
                              "GetChargeDetailRecords", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion
            }
Пример #16
0
            /// <summary>
            /// Create a new CPO client logger using the given logging delegates.
            /// </summary>
            /// <param name="CPOClient">A CPO client.</param>
            /// <param name="LoggingPath">The logging path.</param>
            /// <param name="Context">A context of this API.</param>
            ///
            /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
            /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
            /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
            /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
            ///
            /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
            /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
            /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP client sent events source.</param>
            /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP client sent events source.</param>
            ///
            /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
            /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
            /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
            /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP client sent events source.</param>
            ///
            /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
            public Logger(CPOClient CPOClient,
                          String LoggingPath,
                          String Context,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                          HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                          LogfileCreatorDelegate LogfileCreator = null)

                : base(CPOClient,
                       LoggingPath,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                       LogHTTPRequest_toConsole,
                       LogHTTPResponse_toConsole,
                       LogHTTPRequest_toDisc,
                       LogHTTPResponse_toDisc,

                       LogHTTPRequest_toNetwork,
                       LogHTTPResponse_toNetwork,
                       LogHTTPRequest_toHTTPSSE,
                       LogHTTPResponse_toHTTPSSE,

                       LogHTTPError_toConsole,
                       LogHTTPError_toDisc,
                       LogHTTPError_toNetwork,
                       LogHTTPError_toHTTPSSE,

                       LogfileCreator)

            {
                this.CPOClient = CPOClient ?? throw new ArgumentNullException(nameof(CPOClient), "The given CPO client must not be null!");

                #region PushEVSEData/Status

                RegisterEvent("PushEVSEDataHTTPRequest",
                              handler => CPOClient.OnPushEVSEDataHTTPRequest += handler,
                              handler => CPOClient.OnPushEVSEDataHTTPRequest -= handler,
                              "PushEVSEData", "push", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PushEVSEDataHTTPResponse",
                              handler => CPOClient.OnPushEVSEDataHTTPResponse += handler,
                              handler => CPOClient.OnPushEVSEDataHTTPResponse -= handler,
                              "PushEVSEData", "push", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("PushEVSEStatusHTTPRequest",
                              handler => CPOClient.OnPushEVSEStatusHTTPRequest += handler,
                              handler => CPOClient.OnPushEVSEStatusHTTPRequest -= handler,
                              "PushEVSEStatus", "push", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PushEVSEStatusHTTPResponse",
                              handler => CPOClient.OnPushEVSEStatusHTTPResponse += handler,
                              handler => CPOClient.OnPushEVSEStatusHTTPResponse -= handler,
                              "PushEVSEStatus", "push", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion

                #region AuthorizeStart/Stop

                RegisterEvent("AuthorizeStartHTTPRequest",
                              handler => CPOClient.OnAuthorizeStartHTTPRequest += handler,
                              handler => CPOClient.OnAuthorizeStartHTTPRequest -= handler,
                              "authorizeStart", "authorize", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("AuthorizeStartHTTPResponse",
                              handler => CPOClient.OnAuthorizeStartHTTPResponse += handler,
                              handler => CPOClient.OnAuthorizeStartHTTPResponse -= handler,
                              "authorizeStart", "authorize", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("AuthorizeStopHTTPRequest",
                              handler => CPOClient.OnAuthorizeStopHTTPRequest += handler,
                              handler => CPOClient.OnAuthorizeStopHTTPRequest -= handler,
                              "authorizeStop", "authorize", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("AuthorizeStopHTTPResponse",
                              handler => CPOClient.OnAuthorizeStopHTTPResponse += handler,
                              handler => CPOClient.OnAuthorizeStopHTTPResponse -= handler,
                              "authorizeStop", "authorize", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion

                #region ChargingNotifications

                RegisterEvent("ChargingStartNotificationHTTPRequest",
                              handler => CPOClient.OnChargingStartNotificationHTTPRequest += handler,
                              handler => CPOClient.OnChargingStartNotificationHTTPRequest -= handler,
                              "chargingStartNotification", "chargingNotifications", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("ChargingStartNotificationHTTPResponse",
                              handler => CPOClient.OnChargingStartNotificationHTTPResponse += handler,
                              handler => CPOClient.OnChargingStartNotificationHTTPResponse -= handler,
                              "chargingStartNotification", "chargingNotifications", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("ChargingProgressNotificationHTTPRequest",
                              handler => CPOClient.OnChargingProgressNotificationHTTPRequest += handler,
                              handler => CPOClient.OnChargingProgressNotificationHTTPRequest -= handler,
                              "chargingProgressNotification", "chargingNotifications", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("ChargingProgressNotificationHTTPResponse",
                              handler => CPOClient.OnChargingProgressNotificationHTTPResponse += handler,
                              handler => CPOClient.OnChargingProgressNotificationHTTPResponse -= handler,
                              "chargingProgressNotification", "chargingNotifications", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("ChargingEndNotificationHTTPRequest",
                              handler => CPOClient.OnChargingEndNotificationHTTPRequest += handler,
                              handler => CPOClient.OnChargingEndNotificationHTTPRequest -= handler,
                              "chargingEndNotification", "chargingNotifications", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("ChargingEndNotificationHTTPResponse",
                              handler => CPOClient.OnChargingEndNotificationHTTPResponse += handler,
                              handler => CPOClient.OnChargingEndNotificationHTTPResponse -= handler,
                              "chargingEndNotification", "chargingNotifications", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("ChargingErrorNotificationHTTPRequest",
                              handler => CPOClient.OnChargingErrorNotificationHTTPRequest += handler,
                              handler => CPOClient.OnChargingErrorNotificationHTTPRequest -= handler,
                              "authorizeStop", "chargingNotifications", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("ChargingErrorNotificationHTTPResponse",
                              handler => CPOClient.OnChargingErrorNotificationHTTPResponse += handler,
                              handler => CPOClient.OnChargingErrorNotificationHTTPResponse -= handler,
                              "chargingErrorNotification", "chargingNotifications", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion

                #region SendChargeDetailRecord

                RegisterEvent("SendChargeDetailRecordHTTPRequest",
                              handler => CPOClient.OnSendChargeDetailRecordHTTPRequest += handler,
                              handler => CPOClient.OnSendChargeDetailRecordHTTPRequest -= handler,
                              "sendChargeDetailRecord", "cdr", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("SendChargeDetailRecordHTTPResponse",
                              handler => CPOClient.OnSendChargeDetailRecordHTTPResponse += handler,
                              handler => CPOClient.OnSendChargeDetailRecordHTTPResponse -= handler,
                              "sendChargeDetailRecord", "cdr", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion
            }
Пример #17
0
            /// <summary>
            /// Create a new common client logger using the given logging delegates.
            /// </summary>
            /// <param name="CommonClient">A common client.</param>
            /// <param name="Context">A context of this API.</param>
            ///
            /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
            /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
            /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
            /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
            ///
            /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
            /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
            /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP client sent events source.</param>
            /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP client sent events source.</param>
            ///
            /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
            /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
            /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
            /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP client sent events source.</param>
            ///
            /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
            public Logger(CommonClient CommonClient,
                          String Context,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                          HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                          LogfileCreatorDelegate LogfileCreator = null)

                : base(CommonClient,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                       LogHTTPRequest_toConsole,
                       LogHTTPResponse_toConsole,
                       LogHTTPRequest_toDisc,
                       LogHTTPResponse_toDisc,

                       LogHTTPRequest_toNetwork,
                       LogHTTPResponse_toNetwork,
                       LogHTTPRequest_toHTTPSSE,
                       LogHTTPResponse_toHTTPSSE,

                       LogHTTPError_toConsole,
                       LogHTTPError_toDisc,
                       LogHTTPError_toNetwork,
                       LogHTTPError_toHTTPSSE,

                       LogfileCreator)

            {
                this.CommonClient = CommonClient ?? throw new ArgumentNullException(nameof(CommonClient), "The given common client must not be null!");

                #region Versions

                RegisterEvent("GetVersionsRequest",
                              handler => CommonClient.OnGetVersionsHTTPRequest += handler,
                              handler => CommonClient.OnGetVersionsHTTPRequest -= handler,
                              "GetVersions", "versions", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetVersionsResponse",
                              handler => CommonClient.OnGetVersionsHTTPResponse += handler,
                              handler => CommonClient.OnGetVersionsHTTPResponse -= handler,
                              "GetVersions", "versions", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("GetVersionDetailsRequest",
                              handler => CommonClient.OnGetVersionDetailsHTTPRequest += handler,
                              handler => CommonClient.OnGetVersionDetailsHTTPRequest -= handler,
                              "GetVersionDetails", "versions", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetVersionDetailsResponse",
                              handler => CommonClient.OnGetVersionDetailsHTTPRequest += handler,
                              handler => CommonClient.OnGetVersionDetailsHTTPRequest -= handler,
                              "GetVersionDetails", "versions", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion

                #region Credentials

                RegisterEvent("GetCredentialsRequest",
                              handler => CommonClient.OnGetCredentialsHTTPRequest += handler,
                              handler => CommonClient.OnGetCredentialsHTTPRequest -= handler,
                              "GetCredentials", "credentials", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetCredentialsResponse",
                              handler => CommonClient.OnGetCredentialsHTTPResponse += handler,
                              handler => CommonClient.OnGetCredentialsHTTPResponse -= handler,
                              "GetCredentials", "credentials", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("PostCredentialsRequest",
                              handler => CommonClient.OnPostCredentialsHTTPRequest += handler,
                              handler => CommonClient.OnPostCredentialsHTTPRequest -= handler,
                              "PostCredentials", "credentials", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PostCredentialsResponse",
                              handler => CommonClient.OnPostCredentialsHTTPResponse += handler,
                              handler => CommonClient.OnPostCredentialsHTTPResponse -= handler,
                              "PostCredentials", "credentials", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("PutCredentialsRequest",
                              handler => CommonClient.OnPutCredentialsHTTPRequest += handler,
                              handler => CommonClient.OnPutCredentialsHTTPRequest -= handler,
                              "PutCredentials", "credentials", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PutCredentialsResponse",
                              handler => CommonClient.OnPutCredentialsHTTPResponse += handler,
                              handler => CommonClient.OnPutCredentialsHTTPResponse -= handler,
                              "PutCredentials", "credentials", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("DeleteCredentialsRequest",
                              handler => CommonClient.OnDeleteCredentialsHTTPRequest += handler,
                              handler => CommonClient.OnDeleteCredentialsHTTPRequest -= handler,
                              "DeleteCredentials", "credentials", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("DeleteCredentialsResponse",
                              handler => CommonClient.OnDeleteCredentialsHTTPResponse += handler,
                              handler => CommonClient.OnDeleteCredentialsHTTPResponse -= handler,
                              "DeleteCredentials", "credentials", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("RegisterRequest",
                              handler => CommonClient.OnRegisterHTTPRequest += handler,
                              handler => CommonClient.OnRegisterHTTPRequest -= handler,
                              "Register", "credentials", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("RegisterResponse",
                              handler => CommonClient.OnRegisterHTTPResponse += handler,
                              handler => CommonClient.OnRegisterHTTPResponse -= handler,
                              "Register", "credentials", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion
            }
Пример #18
0
            /// <summary>
            /// Create a new EMSP client logger using the given logging delegates.
            /// </summary>
            /// <param name="EMSPClient">A EMSP client.</param>
            /// <param name="Context">A context of this API.</param>
            ///
            /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
            /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
            /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
            /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
            ///
            /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
            /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
            /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP client sent events source.</param>
            /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP client sent events source.</param>
            ///
            /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
            /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
            /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
            /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP client sent events source.</param>
            ///
            /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
            public Logger(EMSPClient EMSPClient,
                          String Context,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                          HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                          LogfileCreatorDelegate LogfileCreator = null)

                : base(EMSPClient,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                       LogHTTPRequest_toConsole,
                       LogHTTPResponse_toConsole,
                       LogHTTPRequest_toDisc,
                       LogHTTPResponse_toDisc,

                       LogHTTPRequest_toNetwork,
                       LogHTTPResponse_toNetwork,
                       LogHTTPRequest_toHTTPSSE,
                       LogHTTPResponse_toHTTPSSE,

                       LogHTTPError_toConsole,
                       LogHTTPError_toDisc,
                       LogHTTPError_toNetwork,
                       LogHTTPError_toHTTPSSE,

                       LogfileCreator)

            {
                this.EMSPClient = EMSPClient ?? throw new ArgumentNullException(nameof(EMSPClient), "The given EMSP client must not be null!");

                #region Locations

                RegisterEvent("GetLocationsRequest",
                              handler => EMSPClient.OnGetLocationsHTTPRequest += handler,
                              handler => EMSPClient.OnGetLocationsHTTPRequest -= handler,
                              "GetLocations", "locations", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetLocationsResponse",
                              handler => EMSPClient.OnGetLocationsHTTPResponse += handler,
                              handler => EMSPClient.OnGetLocationsHTTPResponse -= handler,
                              "GetLocations", "locations", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("GetLocationByIdRequest",
                              handler => EMSPClient.OnGetLocationByIdHTTPRequest += handler,
                              handler => EMSPClient.OnGetLocationByIdHTTPRequest -= handler,
                              "GetLocationById", "locations", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetLocationByIdResponse",
                              handler => EMSPClient.OnGetLocationByIdHTTPResponse += handler,
                              handler => EMSPClient.OnGetLocationByIdHTTPResponse -= handler,
                              "GetLocationById", "locations", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("GetEVSEByUIdRequest",
                              handler => EMSPClient.OnGetEVSEByUIdHTTPRequest += handler,
                              handler => EMSPClient.OnGetEVSEByUIdHTTPRequest -= handler,
                              "GetEVSEByUId", "EVSEs", "locations", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetEVSEByUIdResponse",
                              handler => EMSPClient.OnGetEVSEByUIdHTTPResponse += handler,
                              handler => EMSPClient.OnGetEVSEByUIdHTTPResponse -= handler,
                              "GetEVSEByUId", "EVSEs", "locations", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("GetConnectorByIdRequest",
                              handler => EMSPClient.OnGetConnectorByIdHTTPRequest += handler,
                              handler => EMSPClient.OnGetConnectorByIdHTTPRequest -= handler,
                              "GetConnectorById", "connectors", "locations", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetConnectorByIdResponse",
                              handler => EMSPClient.OnGetConnectorByIdHTTPResponse += handler,
                              handler => EMSPClient.OnGetConnectorByIdHTTPResponse -= handler,
                              "GetConnectorById", "connectors", "locations", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion

                #region Tariffs

                RegisterEvent("GetTariffsRequest",
                              handler => EMSPClient.OnGetTariffsHTTPRequest += handler,
                              handler => EMSPClient.OnGetTariffsHTTPRequest -= handler,
                              "GetTariffs", "tariffs", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetTariffsResponse",
                              handler => EMSPClient.OnGetTariffsHTTPResponse += handler,
                              handler => EMSPClient.OnGetTariffsHTTPResponse -= handler,
                              "GetTariffs", "tariffs", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("GetTariffByIdRequest",
                              handler => EMSPClient.OnGetTariffByIdHTTPRequest += handler,
                              handler => EMSPClient.OnGetTariffByIdHTTPRequest -= handler,
                              "GetTariffById", "tariffs", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetTariffByIdResponse",
                              handler => EMSPClient.OnGetTariffByIdHTTPResponse += handler,
                              handler => EMSPClient.OnGetTariffByIdHTTPResponse -= handler,
                              "GetTariffById", "tariffs", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion

                #region Sessions

                RegisterEvent("GetSessionsRequest",
                              handler => EMSPClient.OnGetSessionsHTTPRequest += handler,
                              handler => EMSPClient.OnGetSessionsHTTPRequest -= handler,
                              "GetSessions", "sessions", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetSessionsResponse",
                              handler => EMSPClient.OnGetSessionsHTTPResponse += handler,
                              handler => EMSPClient.OnGetSessionsHTTPResponse -= handler,
                              "GetSessions", "sessions", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("GetSessionByIdRequest",
                              handler => EMSPClient.OnGetSessionByIdHTTPRequest += handler,
                              handler => EMSPClient.OnGetSessionByIdHTTPRequest -= handler,
                              "GetSessionById", "sessions", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetSessionByIdResponse",
                              handler => EMSPClient.OnGetSessionByIdHTTPResponse += handler,
                              handler => EMSPClient.OnGetSessionByIdHTTPResponse -= handler,
                              "GetSessionById", "sessions", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion

                #region CDRs

                RegisterEvent("GetCDRsRequest",
                              handler => EMSPClient.OnGetCDRsHTTPRequest += handler,
                              handler => EMSPClient.OnGetCDRsHTTPRequest -= handler,
                              "GetCDRs", "CDRs", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetCDRsResponse",
                              handler => EMSPClient.OnGetCDRsHTTPResponse += handler,
                              handler => EMSPClient.OnGetCDRsHTTPResponse -= handler,
                              "GetCDRs", "CDRs", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("GetCDRByIdRequest",
                              handler => EMSPClient.OnGetCDRByIdHTTPRequest += handler,
                              handler => EMSPClient.OnGetCDRByIdHTTPRequest -= handler,
                              "GetCDRById", "CDRs", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetCDRByIdResponse",
                              handler => EMSPClient.OnGetCDRByIdHTTPResponse += handler,
                              handler => EMSPClient.OnGetCDRByIdHTTPResponse -= handler,
                              "GetCDRById", "CDRs", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion

                #region Tokens

                RegisterEvent("GetTokenRequest",
                              handler => EMSPClient.OnGetTokenHTTPRequest += handler,
                              handler => EMSPClient.OnGetTokenHTTPRequest -= handler,
                              "GetToken", "tokens", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetTokenResponse",
                              handler => EMSPClient.OnGetTokenHTTPResponse += handler,
                              handler => EMSPClient.OnGetTokenHTTPResponse -= handler,
                              "GetToken", "tokens", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("PutTokenRequest",
                              handler => EMSPClient.OnPutTokenHTTPRequest += handler,
                              handler => EMSPClient.OnPutTokenHTTPRequest -= handler,
                              "PutToken", "tokens", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PutTokenResponse",
                              handler => EMSPClient.OnPutTokenHTTPResponse += handler,
                              handler => EMSPClient.OnPutTokenHTTPResponse -= handler,
                              "PutToken", "tokens", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("PatchTokenRequest",
                              handler => EMSPClient.OnPatchTokenHTTPRequest += handler,
                              handler => EMSPClient.OnPatchTokenHTTPRequest -= handler,
                              "PatchToken", "tokens", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("PatchTokenResponse",
                              handler => EMSPClient.OnPatchTokenHTTPResponse += handler,
                              handler => EMSPClient.OnPatchTokenHTTPResponse -= handler,
                              "PatchToken", "tokens", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion

                #region Commands

                RegisterEvent("ReserveNowRequest",
                              handler => EMSPClient.OnReserveNowHTTPRequest += handler,
                              handler => EMSPClient.OnReserveNowHTTPRequest -= handler,
                              "ReserveNow", "reservations", "commands", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("ReserveNowResponse",
                              handler => EMSPClient.OnReserveNowHTTPResponse += handler,
                              handler => EMSPClient.OnReserveNowHTTPResponse -= handler,
                              "ReserveNow", "reservations", "commands", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("CancelReservationRequest",
                              handler => EMSPClient.OnCancelReservationHTTPRequest += handler,
                              handler => EMSPClient.OnCancelReservationHTTPRequest -= handler,
                              "CancelReservation", "reservations", "commands", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("CancelReservationResponse",
                              handler => EMSPClient.OnCancelReservationHTTPResponse += handler,
                              handler => EMSPClient.OnCancelReservationHTTPResponse -= handler,
                              "CancelReservation", "reservations", "commands", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);



                RegisterEvent("StartSessionRequest",
                              handler => EMSPClient.OnStartSessionHTTPRequest += handler,
                              handler => EMSPClient.OnStartSessionHTTPRequest -= handler,
                              "StartSession", "StartStopSessions", "commands", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("StartSessionResponse",
                              handler => EMSPClient.OnStartSessionHTTPResponse += handler,
                              handler => EMSPClient.OnStartSessionHTTPResponse -= handler,
                              "StartSession", "StartStopSessions", "commands", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("StopSessionRequest",
                              handler => EMSPClient.OnStopSessionHTTPRequest += handler,
                              handler => EMSPClient.OnStopSessionHTTPRequest -= handler,
                              "StopSession", "StopStopSessions", "commands", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("StopSessionResponse",
                              handler => EMSPClient.OnStopSessionHTTPResponse += handler,
                              handler => EMSPClient.OnStopSessionHTTPResponse -= handler,
                              "StopSession", "StopStopSessions", "commands", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);



                RegisterEvent("UnlockConnectorRequest",
                              handler => EMSPClient.OnUnlockConnectorHTTPRequest += handler,
                              handler => EMSPClient.OnUnlockConnectorHTTPRequest -= handler,
                              "UnlockConnector", "commands", "requests", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("UnlockConnectorResponse",
                              handler => EMSPClient.OnUnlockConnectorHTTPResponse += handler,
                              handler => EMSPClient.OnUnlockConnectorHTTPResponse -= handler,
                              "UnlockConnector", "commands", "responses", "all").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion
            }
Пример #19
0
        /// <summary>
        /// Create a new central service SOAP server logger using the given logging delegates.
        /// </summary>
        /// <param name="CSServer">A OCPP central service SOAP server.</param>
        /// <param name="LoggingPath">The logging path.</param>
        /// <param name="Context">A context of this API.</param>
        ///
        /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
        /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
        /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
        /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
        ///
        /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
        /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
        /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP server sent events source.</param>
        /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP server sent events source.</param>
        ///
        /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
        /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
        /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
        /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP server sent events source.</param>
        ///
        /// <param name="LogFileCreator">A delegate to create a log file from the given context and log file name.</param>
        public CSServerLogger(CentralSystemSOAPServer CSServer,
                              String LoggingPath,
                              String Context,

                              HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                              HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                              HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                              HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                              HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                              HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                              HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                              HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                              HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                              HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                              HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                              HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                              LogfileCreatorDelegate LogFileCreator = null)

            : base(CSServer.SOAPServer.HTTPServer,
                   LoggingPath,
                   Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                   LogHTTPRequest_toConsole,
                   LogHTTPResponse_toConsole,
                   LogHTTPRequest_toDisc,
                   LogHTTPResponse_toDisc,

                   LogHTTPRequest_toNetwork,
                   LogHTTPResponse_toNetwork,
                   LogHTTPRequest_toHTTPSSE,
                   LogHTTPResponse_toHTTPSSE,

                   LogHTTPError_toConsole,
                   LogHTTPError_toDisc,
                   LogHTTPError_toNetwork,
                   LogHTTPError_toHTTPSSE,

                   LogFileCreator)

        {
            #region Initial checks

            if (CSServer == null)
            {
                throw new ArgumentNullException(nameof(CSServer), "The given CS server must not be null!");
            }

            this.CSServer = CSServer;

            #endregion


            //#region SelectEVSE

            //RegisterEvent("SelectEVSERequest",
            //              handler => CSServer.OnSelectEVSESOAPRequest += handler,
            //              handler => CSServer.OnSelectEVSESOAPRequest -= handler,
            //              "SelectEVSE", "OCPPdirect", "Requests", "All").
            //    RegisterDefaultConsoleLogTarget(this).
            //    RegisterDefaultDiscLogTarget(this);

            //RegisterEvent("SelectEVSEResponse",
            //              handler => CSServer.OnSelectEVSESOAPResponse += handler,
            //              handler => CSServer.OnSelectEVSESOAPResponse -= handler,
            //              "SelectEVSE", "OCPPdirect", "Responses", "All").
            //   RegisterDefaultConsoleLogTarget(this).
            //   RegisterDefaultDiscLogTarget(this);

            //#endregion
        }
Пример #20
0
        /// <summary>
        /// Create a new HTTP API logger using the given logging delegates.
        /// </summary>
        /// <param name="HTTPAPI">A HTTP API.</param>
        /// <param name="Context">A context of this API.</param>
        /// 
        /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
        /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
        /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
        /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
        /// 
        /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
        /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
        /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP server sent events source.</param>
        /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP server sent events source.</param>
        /// 
        /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
        /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
        /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
        /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP server sent events source.</param>
        /// 
        /// <param name="LogFileCreator">A delegate to create a log file from the given context and log file name.</param>
        public HTTPLogger(HTTPServer                    HTTPAPI,
                          String                        Context,

                          HTTPRequestLoggerDelegate     LogHTTPRequest_toConsole,
                          HTTPResponseLoggerDelegate    LogHTTPResponse_toConsole,
                          HTTPRequestLoggerDelegate     LogHTTPRequest_toDisc,
                          HTTPResponseLoggerDelegate    LogHTTPResponse_toDisc,

                          HTTPRequestLoggerDelegate     LogHTTPRequest_toNetwork   = null,
                          HTTPResponseLoggerDelegate    LogHTTPResponse_toNetwork  = null,
                          HTTPRequestLoggerDelegate     LogHTTPRequest_toHTTPSSE   = null,
                          HTTPResponseLoggerDelegate    LogHTTPResponse_toHTTPSSE  = null,

                          HTTPResponseLoggerDelegate    LogHTTPError_toConsole     = null,
                          HTTPResponseLoggerDelegate    LogHTTPError_toDisc        = null,
                          HTTPResponseLoggerDelegate    LogHTTPError_toNetwork     = null,
                          HTTPResponseLoggerDelegate    LogHTTPError_toHTTPSSE     = null,

                          Func<String, String, String>  LogFileCreator             = null)

            : this(Context,

                   LogHTTPRequest_toConsole,
                   LogHTTPResponse_toConsole,
                   LogHTTPRequest_toDisc,
                   LogHTTPResponse_toDisc,

                   LogHTTPRequest_toNetwork,
                   LogHTTPResponse_toNetwork,
                   LogHTTPRequest_toHTTPSSE,
                   LogHTTPResponse_toHTTPSSE,

                   LogHTTPError_toConsole,
                   LogHTTPError_toDisc,
                   LogHTTPError_toNetwork,
                   LogHTTPError_toHTTPSSE,

                   LogFileCreator)

        {

            #region Initial checks

            if (HTTPAPI == null)
                throw new ArgumentNullException(nameof(HTTPAPI), "The given HTTP API must not be null!");

            this._HTTPAPI              = HTTPAPI;

            #endregion


            //ToDo: Evaluate Logging targets!

            HTTPAPI.ErrorLog += (Timestamp,
                                 HTTPServer,
                                 HTTPRequest,
                                 HTTPResponse,
                                 Error,
                                 LastException) => {

                        DebugX.Log(Timestamp + " - " +
                                   HTTPRequest.RemoteSocket.IPAddress + ":" +
                                   HTTPRequest.RemoteSocket.Port + " " +
                                   HTTPRequest.HTTPMethod + " " +
                                   HTTPRequest.URI + " " +
                                   HTTPRequest.ProtocolVersion + " => " +
                                   HTTPResponse.HTTPStatusCode + " - " +
                                   Error);

                   };

        }
Пример #21
0
            /// <summary>
            /// Create a new eMIP CPO client logger using the given logging delegates.
            /// </summary>
            /// <param name="CPOClient">An eMIP CPO client.</param>
            /// <param name="LoggingPath">The logging path.</param>
            /// <param name="Context">A context of this API.</param>
            ///
            /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
            /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
            /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
            /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
            ///
            /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
            /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
            /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP client sent events source.</param>
            /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP client sent events source.</param>
            ///
            /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
            /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
            /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
            /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP client sent events source.</param>
            ///
            /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
            public Logger(ICPOClient CPOClient,
                          String LoggingPath,
                          String Context,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                          HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                          HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                          HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                          HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                          HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                          LogfileCreatorDelegate LogfileCreator = null)

                : base(CPOClient,
                       LoggingPath,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,

                       LogHTTPRequest_toConsole,
                       LogHTTPResponse_toConsole,
                       LogHTTPRequest_toDisc,
                       LogHTTPResponse_toDisc,

                       LogHTTPRequest_toNetwork,
                       LogHTTPResponse_toNetwork,
                       LogHTTPRequest_toHTTPSSE,
                       LogHTTPResponse_toHTTPSSE,

                       LogHTTPError_toConsole,
                       LogHTTPError_toDisc,
                       LogHTTPError_toNetwork,
                       LogHTTPError_toHTTPSSE,

                       LogfileCreator)

            {
                #region Initial checks

                this.CPOClient = CPOClient ?? throw new ArgumentNullException(nameof(CPOClient), "The given CPO client must not be null!");

                #endregion

                #region Register log events

                RegisterEvent("SendHeartbeatRequest",
                              handler => CPOClient.OnSendHeartbeatSOAPRequest += handler,
                              handler => CPOClient.OnSendHeartbeatSOAPRequest -= handler,
                              "SendHeartbeat", "Heartbeat", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("SendHeartbeatResponse",
                              handler => CPOClient.OnSendHeartbeatSOAPResponse += handler,
                              handler => CPOClient.OnSendHeartbeatSOAPResponse -= handler,
                              "SendHeartbeat", "Heartbeat", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);



                RegisterEvent("SetChargingPoolAvailabilityStatusRequest",
                              handler => CPOClient.OnSetChargingPoolAvailabilityStatusSOAPRequest += handler,
                              handler => CPOClient.OnSetChargingPoolAvailabilityStatusSOAPRequest -= handler,
                              "SetChargingPoolAvailabilityStatus", "SetChargingPoolStatus", "ChargingPool", "AvailabilityStatus", "Status", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("SetChargingPoolAvailabilityStatusResponse",
                              handler => CPOClient.OnSetChargingPoolAvailabilityStatusSOAPResponse += handler,
                              handler => CPOClient.OnSetChargingPoolAvailabilityStatusSOAPResponse -= handler,
                              "SetChargingPoolAvailabilityStatus", "SetChargingPoolStatus", "ChargingPool", "AvailabilityStatus", "Status", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("SetChargingStationAvailabilityStatusRequest",
                              handler => CPOClient.OnSetChargingStationAvailabilityStatusSOAPRequest += handler,
                              handler => CPOClient.OnSetChargingStationAvailabilityStatusSOAPRequest -= handler,
                              "SetChargingStationAvailabilityStatus", "SetChargingStationStatus", "ChargingStation", "AvailabilityStatus", "Status", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("SetChargingStationAvailabilityStatusResponse",
                              handler => CPOClient.OnSetChargingStationAvailabilityStatusSOAPResponse += handler,
                              handler => CPOClient.OnSetChargingStationAvailabilityStatusSOAPResponse -= handler,
                              "SetChargingStationAvailabilityStatus", "SetChargingStationStatus", "ChargingStation", "AvailabilityStatus", "Status", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("SetEVSEAvailabilityStatusRequest",
                              handler => CPOClient.OnSetEVSEAvailabilityStatusSOAPRequest += handler,
                              handler => CPOClient.OnSetEVSEAvailabilityStatusSOAPRequest -= handler,
                              "SetEVSEAvailabilityStatus", "SetEVSEStatus", "EVSE", "AvailabilityStatus", "Status", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("SetEVSEAvailabilityStatusResponse",
                              handler => CPOClient.OnSetEVSEAvailabilityStatusSOAPResponse += handler,
                              handler => CPOClient.OnSetEVSEAvailabilityStatusSOAPResponse -= handler,
                              "SetEVSEAvailabilityStatus", "SetEVSEStatus", "EVSE", "AvailabilityStatus", "Status", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("SetChargingConnectorAvailabilityStatusRequest",
                              handler => CPOClient.OnSetChargingConnectorAvailabilityStatusSOAPRequest += handler,
                              handler => CPOClient.OnSetChargingConnectorAvailabilityStatusSOAPRequest -= handler,
                              "SetChargingConnectorAvailabilityStatus", "SetChargingConnectorStatus", "ChargingConnector", "AvailabilityStatus", "Status", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("SetChargingConnectorAvailabilityStatusResponse",
                              handler => CPOClient.OnSetChargingConnectorAvailabilityStatusSOAPResponse += handler,
                              handler => CPOClient.OnSetChargingConnectorAvailabilityStatusSOAPResponse -= handler,
                              "SetChargingConnectorAvailabilityStatus", "SetChargingConnectorStatus", "ChargingConnector", "AvailabilityStatus", "Status", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);



                RegisterEvent("SetEVSEBusyStatusRequest",
                              handler => CPOClient.OnSetEVSEBusyStatusSOAPRequest += handler,
                              handler => CPOClient.OnSetEVSEBusyStatusSOAPRequest -= handler,
                              "SetEVSEBusyStatus", "SetEVSEStatus", "EVSE", "BusyStatus", "Status", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("SetEVSEBusyStatusResponse",
                              handler => CPOClient.OnSetEVSEBusyStatusSOAPResponse += handler,
                              handler => CPOClient.OnSetEVSEBusyStatusSOAPResponse -= handler,
                              "SetEVSEBusyStatus", "SetEVSEStatus", "EVSE", "BusyStatus", "Status", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);


                RegisterEvent("SetEVSESyntheticStatusRequest",
                              handler => CPOClient.OnSetEVSESyntheticStatusSOAPRequest += handler,
                              handler => CPOClient.OnSetEVSESyntheticStatusSOAPRequest -= handler,
                              "SetEVSESyntheticStatus", "SetEVSEStatus", "EVSE", "SyntheticStatus", "Status", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("SetEVSESyntheticStatusResponse",
                              handler => CPOClient.OnSetEVSESyntheticStatusSOAPResponse += handler,
                              handler => CPOClient.OnSetEVSESyntheticStatusSOAPResponse -= handler,
                              "SetEVSESyntheticStatus", "SetEVSEStatus", "EVSE", "SyntheticStatus", "Status", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);



                RegisterEvent("GetServiceAuthorisationRequest",
                              handler => CPOClient.OnGetServiceAuthorisationSOAPRequest += handler,
                              handler => CPOClient.OnGetServiceAuthorisationSOAPRequest -= handler,
                              "GetServiceAuthorisation", "Authorisation", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("GetServiceAuthorisationResponse",
                              handler => CPOClient.OnGetServiceAuthorisationSOAPResponse += handler,
                              handler => CPOClient.OnGetServiceAuthorisationSOAPResponse -= handler,
                              "GetServiceAuthorisation", "Authorisation", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);



                RegisterEvent("SetSessionEventReportRequest",
                              handler => CPOClient.OnSetSessionEventReportSOAPRequest += handler,
                              handler => CPOClient.OnSetSessionEventReportSOAPRequest -= handler,
                              "SetSessionEventReport", "Authorisation", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("SetSessionEventReportResponse",
                              handler => CPOClient.OnSetSessionEventReportSOAPResponse += handler,
                              handler => CPOClient.OnSetSessionEventReportSOAPResponse -= handler,
                              "SetSessionEventReport", "Authorisation", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);



                RegisterEvent("SetChargeDetailRecordRequest",
                              handler => CPOClient.OnSetChargeDetailRecordSOAPRequest += handler,
                              handler => CPOClient.OnSetChargeDetailRecordSOAPRequest -= handler,
                              "SetChargeDetailRecord", "ChargeDetailRecord", "CDR", "Request", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                RegisterEvent("SetChargeDetailRecordResponse",
                              handler => CPOClient.OnSetChargeDetailRecordSOAPResponse += handler,
                              handler => CPOClient.OnSetChargeDetailRecordSOAPResponse -= handler,
                              "SetChargeDetailRecord", "ChargeDetailRecord", "CDR", "Response", "All").
                RegisterDefaultConsoleLogTarget(this).
                RegisterDefaultDiscLogTarget(this);

                #endregion
            }
Пример #22
0
        /// <summary>
        /// Create a new HTTP API logger using the given logging delegates.
        /// </summary>
        /// <param name="Context">A context of this API.</param>
        /// 
        /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
        /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
        /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
        /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
        /// 
        /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
        /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
        /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP server sent events source.</param>
        /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP server sent events source.</param>
        /// 
        /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
        /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
        /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
        /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP server sent events source.</param>
        /// 
        /// <param name="LogFileCreator">A delegate to create a log file from the given context and log file name.</param>
        public HTTPLogger(String                        Context,

                          HTTPRequestLoggerDelegate     LogHTTPRequest_toConsole,
                          HTTPResponseLoggerDelegate    LogHTTPResponse_toConsole,
                          HTTPRequestLoggerDelegate     LogHTTPRequest_toDisc,
                          HTTPResponseLoggerDelegate    LogHTTPResponse_toDisc,

                          HTTPRequestLoggerDelegate     LogHTTPRequest_toNetwork   = null,
                          HTTPResponseLoggerDelegate    LogHTTPResponse_toNetwork  = null,
                          HTTPRequestLoggerDelegate     LogHTTPRequest_toHTTPSSE   = null,
                          HTTPResponseLoggerDelegate    LogHTTPResponse_toHTTPSSE  = null,

                          HTTPResponseLoggerDelegate    LogHTTPError_toConsole     = null,
                          HTTPResponseLoggerDelegate    LogHTTPError_toDisc        = null,
                          HTTPResponseLoggerDelegate    LogHTTPError_toNetwork     = null,
                          HTTPResponseLoggerDelegate    LogHTTPError_toHTTPSSE     = null,

                          Func<String, String, String>  LogFileCreator             = null)

        {

            #region Init data structures

            this._Context                    = Context != null ? Context : "";
            this._HTTPRequestLoggers         = new ConcurrentDictionary<String, HTTPServerRequestLogger>();
            this._HTTPResponseLoggers        = new ConcurrentDictionary<String, HTTPServerResponseLogger>();
            this._HTTPClientRequestLoggers   = new ConcurrentDictionary<String, HTTPClientRequestLogger>();
            this._HTTPClientResponseLoggers  = new ConcurrentDictionary<String, HTTPClientResponseLogger>();
            this._GroupTags                  = new ConcurrentDictionary<String, HashSet<String>>();

            #endregion

            #region Set default delegates

            if (LogHTTPRequest_toConsole  == null)
                LogHTTPRequest_toConsole   = Default_LogHTTPRequest_toConsole;

            if (LogHTTPRequest_toDisc     == null)
                LogHTTPRequest_toDisc      = Default_LogHTTPRequest_toDisc;

            if (LogHTTPRequest_toDisc     == null)
                LogHTTPRequest_toDisc      = Default_LogHTTPRequest_toDisc;

            if (LogHTTPResponse_toConsole == null)
                LogHTTPResponse_toConsole  = Default_LogHTTPResponse_toConsole;

            if (LogHTTPResponse_toDisc    == null)
                LogHTTPResponse_toDisc     = Default_LogHTTPResponse_toDisc;

            _LogFileCreator = LogFileCreator != null
                                 ? LogFileCreator
                                 : (context, logfilename) => String.Concat((context != null ? context + "_" : ""),
                                                                           logfilename, "_",
                                                                           DateTime.Now.Year, "-",
                                                                           DateTime.Now.Month.ToString("D2"),
                                                                           ".log");

            #endregion

        }
Пример #23
0
        /// <summary>
        /// Create a new UsersAPI logger using the given logging delegates.
        /// </summary>
        /// <param name="UsersAPI">A UsersAPI.</param>
        /// <param name="LoggingPath">The logging path.</param>
        /// <param name="Context">A context of this API.</param>
        ///
        /// <param name="LogHTTPRequest_toConsole">A delegate to log incoming HTTP requests to console.</param>
        /// <param name="LogHTTPResponse_toConsole">A delegate to log HTTP requests/responses to console.</param>
        /// <param name="LogHTTPRequest_toDisc">A delegate to log incoming HTTP requests to disc.</param>
        /// <param name="LogHTTPResponse_toDisc">A delegate to log HTTP requests/responses to disc.</param>
        ///
        /// <param name="LogHTTPRequest_toNetwork">A delegate to log incoming HTTP requests to a network target.</param>
        /// <param name="LogHTTPResponse_toNetwork">A delegate to log HTTP requests/responses to a network target.</param>
        /// <param name="LogHTTPRequest_toHTTPSSE">A delegate to log incoming HTTP requests to a HTTP server sent events source.</param>
        /// <param name="LogHTTPResponse_toHTTPSSE">A delegate to log HTTP requests/responses to a HTTP server sent events source.</param>
        ///
        /// <param name="LogHTTPError_toConsole">A delegate to log HTTP errors to console.</param>
        /// <param name="LogHTTPError_toDisc">A delegate to log HTTP errors to disc.</param>
        /// <param name="LogHTTPError_toNetwork">A delegate to log HTTP errors to a network target.</param>
        /// <param name="LogHTTPError_toHTTPSSE">A delegate to log HTTP errors to a HTTP server sent events source.</param>
        ///
        /// <param name="LogFileCreator">A delegate to create a log file from the given context and log file name.</param>
        public UsersAPILogger(UsersAPI UsersAPI,
                              String LoggingPath,
                              String Context,

                              HTTPRequestLoggerDelegate LogHTTPRequest_toConsole,
                              HTTPResponseLoggerDelegate LogHTTPResponse_toConsole,
                              HTTPRequestLoggerDelegate LogHTTPRequest_toDisc,
                              HTTPResponseLoggerDelegate LogHTTPResponse_toDisc,

                              HTTPRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                              HTTPResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                              HTTPRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                              HTTPResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                              HTTPResponseLoggerDelegate LogHTTPError_toConsole = null,
                              HTTPResponseLoggerDelegate LogHTTPError_toDisc    = null,
                              HTTPResponseLoggerDelegate LogHTTPError_toNetwork = null,
                              HTTPResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                              LogfileCreatorDelegate LogFileCreator = null)

            : base(UsersAPI.HTTPServer,
                   LoggingPath,
                   Context,

                   LogHTTPRequest_toConsole,
                   LogHTTPResponse_toConsole,
                   LogHTTPRequest_toDisc,
                   LogHTTPResponse_toDisc,

                   LogHTTPRequest_toNetwork,
                   LogHTTPResponse_toNetwork,
                   LogHTTPRequest_toHTTPSSE,
                   LogHTTPResponse_toHTTPSSE,

                   LogHTTPError_toConsole,
                   LogHTTPError_toDisc,
                   LogHTTPError_toNetwork,
                   LogHTTPError_toHTTPSSE,

                   LogFileCreator)

        {
            this.UsersAPI = UsersAPI ?? throw new ArgumentNullException(nameof(UsersAPI), "The given UsersAPI must not be null!");

            #region Users

            RegisterEvent2("AddUserRequest",
                           handler => UsersAPI.OnAddUserHTTPRequest += handler,
                           handler => UsersAPI.OnAddUserHTTPRequest -= handler,
                           "User", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("AddUserResponse",
                           handler => UsersAPI.OnAddUserHTTPResponse += handler,
                           handler => UsersAPI.OnAddUserHTTPResponse -= handler,
                           "User", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent2("SetUserRequest",
                           handler => UsersAPI.OnSetUserHTTPRequest += handler,
                           handler => UsersAPI.OnSetUserHTTPRequest -= handler,
                           "User", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("SetUserResponse",
                           handler => UsersAPI.OnSetUserHTTPResponse += handler,
                           handler => UsersAPI.OnSetUserHTTPResponse -= handler,
                           "User", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent2("ChangePasswordRequest",
                           handler => UsersAPI.OnChangePasswordRequest += handler,
                           handler => UsersAPI.OnChangePasswordRequest -= handler,
                           "User", "ChangePassword", "Password", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("ChangePasswordResponse",
                           handler => UsersAPI.OnChangePasswordResponse += handler,
                           handler => UsersAPI.OnChangePasswordResponse -= handler,
                           "User", "ChangePassword", "Password", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent2("ImpersonateUserRequest",
                           handler => UsersAPI.OnImpersonateUserRequest += handler,
                           handler => UsersAPI.OnImpersonateUserRequest -= handler,
                           "User", "Impersonate", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("ImpersonateUserResponse",
                           handler => UsersAPI.OnImpersonateUserResponse += handler,
                           handler => UsersAPI.OnImpersonateUserResponse -= handler,
                           "User", "Impersonate", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent2("SetUserNotificationsRequest",
                           handler => UsersAPI.OnSetUserNotificationsRequest += handler,
                           handler => UsersAPI.OnSetUserNotificationsRequest -= handler,
                           "SetUserNotifications", "Notifications", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("SetUserNotificationsResponse",
                           handler => UsersAPI.OnSetUserNotificationsResponse += handler,
                           handler => UsersAPI.OnSetUserNotificationsResponse -= handler,
                           "SetUserNotifications", "Notifications", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent2("DeleteUserNotificationsRequest",
                           handler => UsersAPI.OnDeleteUserNotificationsRequest += handler,
                           handler => UsersAPI.OnDeleteUserNotificationsRequest -= handler,
                           "DeleteUserNotifications", "Notifications", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("DeleteUserNotificationsResponse",
                           handler => UsersAPI.OnDeleteUserNotificationsResponse += handler,
                           handler => UsersAPI.OnDeleteUserNotificationsResponse -= handler,
                           "DeleteUserNotifications", "Notifications", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion

            #region Organizations

            RegisterEvent2("AddOrganizationRequest",
                           handler => UsersAPI.OnAddOrganizationHTTPRequest += handler,
                           handler => UsersAPI.OnAddOrganizationHTTPRequest -= handler,
                           "Organization", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("AddOrganizationResponse",
                           handler => UsersAPI.OnAddOrganizationHTTPResponse += handler,
                           handler => UsersAPI.OnAddOrganizationHTTPResponse -= handler,
                           "Organization", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent2("SetOrganizationRequest",
                           handler => UsersAPI.OnSetOrganizationHTTPRequest += handler,
                           handler => UsersAPI.OnSetOrganizationHTTPRequest -= handler,
                           "Organization", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("SetOrganizationResponse",
                           handler => UsersAPI.OnSetOrganizationHTTPResponse += handler,
                           handler => UsersAPI.OnSetOrganizationHTTPResponse -= handler,
                           "Organization", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent2("SetOrganizationNotificationsRequest",
                           handler => UsersAPI.OnSetOrganizationNotificationsRequest += handler,
                           handler => UsersAPI.OnSetOrganizationNotificationsRequest -= handler,
                           "SetOrganizationNotifications", "Organization", "Notifications", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("SetOrganizationNotificationsResponse",
                           handler => UsersAPI.OnSetOrganizationNotificationsResponse += handler,
                           handler => UsersAPI.OnSetOrganizationNotificationsResponse -= handler,
                           "SetOrganizationNotifications", "Organization", "Notifications", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent2("DeleteOrganizationNotificationsRequest",
                           handler => UsersAPI.OnDeleteOrganizationNotificationsRequest += handler,
                           handler => UsersAPI.OnDeleteOrganizationNotificationsRequest -= handler,
                           "DeleteOrganizationNotifications", "Organization", "Notifications", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("DeleteOrganizationNotificationsResponse",
                           handler => UsersAPI.OnDeleteOrganizationNotificationsResponse += handler,
                           handler => UsersAPI.OnDeleteOrganizationNotificationsResponse -= handler,
                           "DeleteOrganizationNotifications", "Organization", "Notifications", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent2("DeleteOrganizationRequest",
                           handler => UsersAPI.OnDeleteOrganizationHTTPRequest += handler,
                           handler => UsersAPI.OnDeleteOrganizationHTTPRequest -= handler,
                           "DeleteOrganizations", "Organization", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("DeleteOrganizationResponse",
                           handler => UsersAPI.OnDeleteOrganizationHTTPResponse += handler,
                           handler => UsersAPI.OnDeleteOrganizationHTTPResponse -= handler,
                           "DeleteOrganizations", "Organization", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion

            #region ServiceTickets

            RegisterEvent2("AddServiceTicketRequest",
                           handler => UsersAPI.OnAddServiceTicketRequest += handler,
                           handler => UsersAPI.OnAddServiceTicketRequest -= handler,
                           "ServiceTicket", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("AddServiceTicketResponse",
                           handler => UsersAPI.OnAddServiceTicketResponse += handler,
                           handler => UsersAPI.OnAddServiceTicketResponse -= handler,
                           "ServiceTicket", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent2("SetServiceTicketRequest",
                           handler => UsersAPI.OnSetServiceTicketRequest += handler,
                           handler => UsersAPI.OnSetServiceTicketRequest -= handler,
                           "ServiceTicket", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("SetServiceTicketResponse",
                           handler => UsersAPI.OnSetServiceTicketResponse += handler,
                           handler => UsersAPI.OnSetServiceTicketResponse -= handler,
                           "ServiceTicket", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent2("AddServiceTicketCommentRequest",
                           handler => UsersAPI.OnAddServiceTicketChangeSetRequest += handler,
                           handler => UsersAPI.OnAddServiceTicketChangeSetRequest -= handler,
                           "ServiceTicketComment", "ServiceTicket", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("AddServiceTicketCommentResponse",
                           handler => UsersAPI.OnAddServiceTicketChangeSetResponse += handler,
                           handler => UsersAPI.OnAddServiceTicketChangeSetResponse -= handler,
                           "ServiceTicketComment", "ServiceTicket", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion

            #region API

            RegisterEvent2("RestartRequest",
                           handler => UsersAPI.OnRestartHTTPRequest += handler,
                           handler => UsersAPI.OnRestartHTTPRequest -= handler,
                           "api", "restart", "request", "all").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("RestartResponse",
                           handler => UsersAPI.OnRestartHTTPResponse += handler,
                           handler => UsersAPI.OnRestartHTTPResponse -= handler,
                           "api", "restart", "response", "all").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent2("StopRequest",
                           handler => UsersAPI.OnStopHTTPRequest += handler,
                           handler => UsersAPI.OnStopHTTPRequest -= handler,
                           "api", "stop", "request", "all").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent2("StopResponse",
                           handler => UsersAPI.OnStopHTTPResponse += handler,
                           handler => UsersAPI.OnStopHTTPResponse -= handler,
                           "api", "stop", "response", "all").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion
        }
Пример #24
0
            /// <summary>
            /// Register the given log target and delegate combination.
            /// </summary>
            /// <param name="LogTarget">A log target.</param>
            /// <param name="HTTPResponseDelegate">A delegate to call.</param>
            /// <returns>A HTTP response logger.</returns>
            public HTTPClientResponseLogger RegisterLogTarget(LogTargets                  LogTarget,
                                                              HTTPResponseLoggerDelegate  HTTPResponseDelegate)
            {

                #region Initial checks

                if (HTTPResponseDelegate == null)
                    throw new ArgumentNullException(nameof(HTTPResponseDelegate), "The given delegate must not be null!");

                #endregion

                if (_SubscriptionDelegates.ContainsKey(LogTarget))
                    throw new Exception("Duplicate log target!");

                _SubscriptionDelegates.Add(LogTarget,
                                           async (Timestamp, HTTPAPI, Request, Response) => await HTTPResponseDelegate(_Context, _LogEventName, Request, Response));

                return this;

            }