/// <summary>
        /// Create a new WWCP HTTP API logger using the default logging delegates.
        /// </summary>
        /// <param name="OpenChargingCloudAPI">A WWCP API.</param>
        /// <param name="Context">A context of this API.</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 = DefaultContext,
                                          LogfileCreatorDelegate LogfileCreator = null)

            : this(OpenChargingCloudAPI,
                   Context,
                   null,
                   null,
                   null,
                   null,
                   LogfileCreator : LogfileCreator)

        {
        }
예제 #2
0
        /// <summary>
        /// Create a new EMSP API logger using the default logging delegates.
        /// </summary>
        /// <param name="EMSPAPI">An EMSP API.</param>
        /// <param name="Context">A context of this API.</param>
        /// <param name="LogFileCreator">A delegate to create a log file from the given context and log file name.</param>
        public EMSPAPILogger(EMSPAPI EMSPAPI,
                             String Context = DefaultContext,
                             LogfileCreatorDelegate LogFileCreator = null)

            : this(EMSPAPI,
                   Context,
                   null,
                   null,
                   null,
                   null,
                   LogFileCreator : LogFileCreator)

        {
        }
        /// <summary>
        /// Create a new OICP EMP server logger using the default logging delegates.
        /// </summary>
        /// <param name="EMPServer">A OICP EMP server.</param>
        /// <param name="Context">A context of this API.</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 = DefaultContext,
                               LogfileCreatorDelegate LogfileCreator = null)

            : this(EMPServer,
                   Context.IsNotNullOrEmpty() ? Context : DefaultContext,
                   null,
                   null,
                   null,
                   null,
                   LogfileCreator : LogfileCreator)

        {
        }
예제 #4
0
        /// <summary>
        /// Create a new WWCP HTTP API logger using the default logging delegates.
        /// </summary>
        /// <param name="WWCPAPI">A WWCP API.</param>
        /// <param name="Context">A context of this API.</param>
        /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
        public WWCPLogger(WWCP_HTTPAPI WWCPAPI,
                          String Context = DefaultContext,
                          LogfileCreatorDelegate LogfileCreator = null)

            : this(WWCPAPI,
                   Context,
                   null,
                   null,
                   null,
                   null,
                   LogfileCreator : LogfileCreator)

        {
        }
예제 #5
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
        }
예제 #6
0
        /// <summary>
        /// Create a new Common API logger using the default logging delegates.
        /// </summary>
        /// <param name="CommonAPI">An Common API.</param>
        /// <param name="Context">A context of this API.</param>
        /// <param name="LogFileCreator">A delegate to create a log file from the given context and log file name.</param>
        public CommonAPILogger(CommonAPI CommonAPI,
                               String Context = DefaultContext,
                               LogfileCreatorDelegate LogFileCreator = null)

            : this(CommonAPI,
                   Context,
                   null,
                   null,
                   null,
                   null,
                   LogFileCreator : LogFileCreator)

        {
        }
예제 #7
0
            /// <summary>
            /// Create a new CP client logger using the default logging delegates.
            /// </summary>
            /// <param name="CPClient">A OCPP CP client.</param>
            /// <param name="Context">A context of this API.</param>
            /// <param name="LogFileCreator">A delegate to create a log file from the given context and log file name.</param>
            public CPClientLogger(ChargePointSOAPClient CPClient,
                                  String Context = DefaultContext,
                                  LogfileCreatorDelegate LogFileCreator = null)

                : this(CPClient,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,
                       null,
                       null,
                       null,
                       null,

                       LogFileCreator : LogFileCreator)

            {
            }
예제 #8
0
        /// <summary>
        /// Create a new SMSAPI logger using the default logging delegates.
        /// </summary>
        /// <param name="SMSAPIClient">An SMSAPI client.</param>
        /// <param name="Context">A context of this API.</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 = DefaultContext,
                                  LogfileCreatorDelegate LogFileCreator = null)

            : this(SMSAPIClient,
                   Context.IsNotNullOrEmpty() ? Context : DefaultContext,
                   null,
                   null,
                   null,
                   null,

                   LogFileCreator : LogFileCreator)

        {
        }
예제 #9
0
            /// <summary>
            /// Create a new OICP Mobile client logger using the default logging delegates.
            /// </summary>
            /// <param name="MobileClient">A OICP Mobile client.</param>
            /// <param name="Context">A context of this API.</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 = DefaultContext,
                                      LogfileCreatorDelegate LogfileCreator = null)

                : this(MobileClient,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,
                       null,
                       null,
                       null,
                       null,

                       LogfileCreator : LogfileCreator)

            {
            }
예제 #10
0
            /// <summary>
            /// Create a new CS client logger using the default logging delegates.
            /// </summary>
            /// <param name="CSClient">A OCPP CS client.</param>
            /// <param name="Context">A context of this API.</param>
            /// <param name="LogFileCreator">A delegate to create a log file from the given context and log file name.</param>
            public CSClientLogger(CentralSystemSOAPClient CSClient,
                                  String Context = DefaultContext,
                                  LogfileCreatorDelegate LogFileCreator = null)

                : this(CSClient,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,
                       null,
                       null,
                       null,
                       null,

                       LogFileCreator : LogFileCreator)

            {
            }
예제 #11
0
            /// <summary>
            /// Create a new EMP Server API logger using the default 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="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 = DefaultContext,
                          LogfileCreatorDelegate LogFileCreator = null)

                : this(EMPServerAPI,
                       LoggingPath,
                       Context,
                       null,
                       null,
                       null,
                       null,
                       LogFileCreator : LogFileCreator)

            {
            }
예제 #12
0
        //public CustomMapperDelegate<Acknowledgement<PullAuthenticationDataRequest>, Acknowledgement<PullAuthenticationDataRequest>.Builder> CustomPullAuthenticationDataResponseMapper
        //{

        //    get
        //    {
        //        return CPOClient.CustomPullAuthenticationDataResponseMapper;
        //    }

        //    set
        //    {
        //        CPOClient.CustomPullAuthenticationDataResponseMapper = value;
        //    }

        //}

        #endregion

        #endregion

        #region Constructor(s)

        #region CPORoaming(CPOClient, CPOServer, ServerLoggingContext = CPOServerLogger.DefaultContext, LogfileCreator = null)

        /// <summary>
        /// Create a new OICP roaming client for CPOs.
        /// </summary>
        /// <param name="CPOClient">A CPO client.</param>
        /// <param name="CPOServer">A CPO sever.</param>
        /// <param name="ServerLoggingContext">An optional context for logging server methods.</param>
        /// <param name="LogfileCreator">A delegate to create a log file from the given context and logfile name.</param>
        public CPORoaming(CPOClient CPOClient,
                          CPOSOAPServer CPOServer,
                          String ServerLoggingContext           = CPOServerLogger.DefaultContext,
                          LogfileCreatorDelegate LogfileCreator = null)
        {
            this.CPOClient       = CPOClient ?? throw new ArgumentNullException(nameof(CPOClient), "The given CPOClient must not be null!");
            this.CPOServer       = CPOServer ?? throw new ArgumentNullException(nameof(CPOServer), "The given CPOServer must not be null!");
            this.CPOServerLogger = new CPOServerLogger(CPOServer,
                                                       ServerLoggingContext ?? CPOServerLogger.DefaultContext,
                                                       LogfileCreator);

            // Link HTTP events...
            CPOServer.RequestLog  += (HTTPProcessor, ServerTimestamp, Request) => RequestLog.WhenAll(HTTPProcessor, ServerTimestamp, Request);
            CPOServer.ResponseLog += (HTTPProcessor, ServerTimestamp, Request, Response) => ResponseLog.WhenAll(HTTPProcessor, ServerTimestamp, Request, Response);
            CPOServer.ErrorLog    += (HTTPProcessor, ServerTimestamp, Request, Response, Error, LastException) => ErrorLog.WhenAll(HTTPProcessor, ServerTimestamp, Request, Response, Error, LastException);
        }
예제 #13
0
        /// <summary>
        /// Create a new UsersAPI logger using the default 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="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 = DefaultContext,
                              LogfileCreatorDelegate LogFileCreator = null)

            : this(UsersAPI,
                   LoggingPath,
                   Context,
                   null,
                   null,
                   null,
                   null,
                   LogFileCreator : LogFileCreator)

        {
        }
예제 #14
0
        /// <summary>
        /// Create a new charge point SOAP server logger using the default logging delegates.
        /// </summary>
        /// <param name="CPServer">A OCPP charge point SOAP server.</param>
        /// <param name="LoggingPath">The logging path.</param>
        /// <param name="Context">A context of this API.</param>
        /// <param name="LogFileCreator">A delegate to create a log file from the given context and log file name.</param>
        public CPServerLogger(ChargePointSOAPServer CPServer,
                              String LoggingPath,
                              String Context = DefaultContext,
                              LogfileCreatorDelegate LogFileCreator = null)

            : this(CPServer,
                   LoggingPath,
                   Context.IsNotNullOrEmpty() ? Context : DefaultContext,
                   null,
                   null,
                   null,
                   null,

                   LogFileCreator : LogFileCreator)

        {
        }
예제 #15
0
        /// <summary>
        /// Create a new central service SOAP server logger using the default 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="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 = DefaultContext,
                              LogfileCreatorDelegate LogFileCreator = null)

            : this(CSServer,
                   LoggingPath,
                   Context.IsNotNullOrEmpty() ? Context : DefaultContext,
                   null,
                   null,
                   null,
                   null,

                   LogFileCreator : LogFileCreator)

        {
        }
예제 #16
0
            /// <summary>
            /// Create a new eMIP CPO client logger using the default 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="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 = DefaultContext,
                          LogfileCreatorDelegate LogfileCreator = null)

                : this(CPOClient,
                       LoggingPath,
                       Context.IsNotNullOrEmpty() ? Context : DefaultContext,
                       null,
                       null,
                       null,
                       null,

                       LogfileCreator : LogfileCreator)

            {
            }
예제 #17
0
        /// <summary>
        /// Create a new OICP Mobile client.
        /// </summary>
        /// <param name="ClientId">A unqiue identification of this client.</param>
        /// <param name="Hostname">The OICP hostname to connect to.</param>
        /// <param name="RemotePort">An optional OICP TCP port to connect to.</param>
        /// <param name="RemoteCertificateValidator">A delegate to verify the remote TLS certificate.</param>
        /// <param name="ClientCertificateSelector">A delegate to select a TLS client certificate.</param>
        /// <param name="HTTPVirtualHost">An optional HTTP virtual host name to use.</param>
        /// <param name="HTTPUserAgent">An optional HTTP user agent to use.</param>
        /// <param name="RequestTimeout">An optional timeout for upstream queries.</param>
        /// <param name="MaxNumberOfRetries">The default number of maximum transmission retries.</param>
        /// <param name="DNSClient">An optional DNS client.</param>
        /// <param name="LoggingContext">An optional context for logging client methods.</param>
        /// <param name="LogfileCreator">A delegate to create a log file from the given context and log file name.</param>
        public MobileClient(String ClientId,
                            HTTPHostname Hostname,
                            IPPort?RemotePort = null,
                            RemoteCertificateValidationCallback RemoteCertificateValidator = null,
                            LocalCertificateSelectionCallback ClientCertificateSelector    = null,
                            HTTPHostname?HTTPVirtualHost          = null,
                            HTTPPath?URLPrefix                    = null,
                            String MobileAuthorizationURL         = DefaultMobileAuthorizationURL,
                            String HTTPUserAgent                  = DefaultHTTPUserAgent,
                            TimeSpan?RequestTimeout               = null,
                            Byte?MaxNumberOfRetries               = DefaultMaxNumberOfRetries,
                            DNSClient DNSClient                   = null,
                            String LoggingContext                 = MobileClientLogger.DefaultContext,
                            LogfileCreatorDelegate LogfileCreator = null)

            : base(ClientId,
                   Hostname,
                   RemotePort ?? DefaultRemotePort,
                   RemoteCertificateValidator,
                   ClientCertificateSelector,
                   HTTPVirtualHost,
                   URLPrefix ?? DefaultURLPrefix,
                   null,
                   HTTPUserAgent,
                   RequestTimeout,
                   null,
                   MaxNumberOfRetries,
                   DNSClient)

        {
            #region Initial checks

            if (ClientId.IsNullOrEmpty())
            {
                throw new ArgumentNullException(nameof(ClientId), "The given client identification must not be null or empty!");
            }

            #endregion

            this.MobileAuthorizationURL = MobileAuthorizationURL ?? DefaultMobileAuthorizationURL;

            this.Logger = new MobileClientLogger(this,
                                                 LoggingContext,
                                                 LogfileCreator);
        }
예제 #18
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
        }
예제 #19
0
        /// <summary>
        /// Create a new Common API logger using the given logging delegates.
        /// </summary>
        /// <param name="CommonAPI">An Common 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 CommonAPILogger(CommonAPI CommonAPI,
                               String Context,

                               OCPIRequestLoggerDelegate LogHTTPRequest_toConsole,
                               OCPIResponseLoggerDelegate LogHTTPResponse_toConsole,
                               OCPIRequestLoggerDelegate LogHTTPRequest_toDisc,
                               OCPIResponseLoggerDelegate LogHTTPResponse_toDisc,

                               OCPIRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                               OCPIResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                               OCPIRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                               OCPIResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                               OCPIResponseLoggerDelegate LogHTTPError_toConsole = null,
                               OCPIResponseLoggerDelegate LogHTTPError_toDisc    = null,
                               OCPIResponseLoggerDelegate LogHTTPError_toNetwork = null,
                               OCPIResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                               LogfileCreatorDelegate LogFileCreator = null)

            : base(CommonAPI.HTTPServer,
                   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.CommonAPI = CommonAPI ?? throw new ArgumentNullException(nameof(CommonAPI), "The given Common API must not be null!");

            #region Credentials

            RegisterEvent("PostCredentialsRequest",
                          handler => CommonAPI.OnPostCredentialsRequest += handler,
                          handler => CommonAPI.OnPostCredentialsRequest -= handler,
                          "Credentials", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("PostCredentialsResponse",
                          handler => CommonAPI.OnPostCredentialsResponse += handler,
                          handler => CommonAPI.OnPostCredentialsResponse -= handler,
                          "Credentials", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("PutCredentialsRequest",
                          handler => CommonAPI.OnPutCredentialsRequest += handler,
                          handler => CommonAPI.OnPutCredentialsRequest -= handler,
                          "Credentials", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("PutCredentialsResponse",
                          handler => CommonAPI.OnPutCredentialsResponse += handler,
                          handler => CommonAPI.OnPutCredentialsResponse -= handler,
                          "Credentials", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("DeleteCredentialsRequest",
                          handler => CommonAPI.OnDeleteCredentialsRequest += handler,
                          handler => CommonAPI.OnDeleteCredentialsRequest -= handler,
                          "Credentials", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("DeleteCredentialsResponse",
                          handler => CommonAPI.OnDeleteCredentialsResponse += handler,
                          handler => CommonAPI.OnDeleteCredentialsResponse -= handler,
                          "Credentials", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion
        }
예제 #20
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
            }
예제 #21
0
            /// <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
            }
예제 #22
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
            }
예제 #23
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
        }
예제 #24
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
            }
예제 #25
0
        /// <summary>
        /// Create a new EMSP API logger using the given logging delegates.
        /// </summary>
        /// <param name="EMSPAPI">An EMSP 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 EMSPAPILogger(EMSPAPI EMSPAPI,
                             String Context,

                             OCPIRequestLoggerDelegate LogHTTPRequest_toConsole,
                             OCPIResponseLoggerDelegate LogHTTPResponse_toConsole,
                             OCPIRequestLoggerDelegate LogHTTPRequest_toDisc,
                             OCPIResponseLoggerDelegate LogHTTPResponse_toDisc,

                             OCPIRequestLoggerDelegate LogHTTPRequest_toNetwork   = null,
                             OCPIResponseLoggerDelegate LogHTTPResponse_toNetwork = null,
                             OCPIRequestLoggerDelegate LogHTTPRequest_toHTTPSSE   = null,
                             OCPIResponseLoggerDelegate LogHTTPResponse_toHTTPSSE = null,

                             OCPIResponseLoggerDelegate LogHTTPError_toConsole = null,
                             OCPIResponseLoggerDelegate LogHTTPError_toDisc    = null,
                             OCPIResponseLoggerDelegate LogHTTPError_toNetwork = null,
                             OCPIResponseLoggerDelegate LogHTTPError_toHTTPSSE = null,

                             LogfileCreatorDelegate LogFileCreator = null)

            : base(EMSPAPI.HTTPServer,
                   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.EMSPAPI = EMSPAPI ?? throw new ArgumentNullException(nameof(EMSPAPI), "The given EMSP API must not be null!");

            #region Locations

            RegisterEvent("DeleteLocationsRequest",
                          handler => EMSPAPI.OnDeleteLocationsRequest += handler,
                          handler => EMSPAPI.OnDeleteLocationsRequest -= handler,
                          "DeleteLocations", "Locations", "Delete", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("DeleteLocationsResponse",
                          handler => EMSPAPI.OnDeleteLocationsResponse += handler,
                          handler => EMSPAPI.OnDeleteLocationsResponse -= handler,
                          "DeleteLocations", "Locations", "Delete", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("PutLocationRequest",
                          handler => EMSPAPI.OnPutLocationRequest += handler,
                          handler => EMSPAPI.OnPutLocationRequest -= handler,
                          "PutLocation", "Locations", "Put", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("PutLocationResponse",
                          handler => EMSPAPI.OnPutLocationResponse += handler,
                          handler => EMSPAPI.OnPutLocationResponse -= handler,
                          "PutLocation", "Locations", "Put", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("PatchLocationRequest",
                          handler => EMSPAPI.OnPatchLocationRequest += handler,
                          handler => EMSPAPI.OnPatchLocationRequest -= handler,
                          "PatchLocation", "Locations", "Patch", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("PatchLocationResponse",
                          handler => EMSPAPI.OnPatchLocationResponse += handler,
                          handler => EMSPAPI.OnPatchLocationResponse -= handler,
                          "PatchLocation", "Locations", "Patch", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("DeleteLocationRequest",
                          handler => EMSPAPI.OnDeleteLocationRequest += handler,
                          handler => EMSPAPI.OnDeleteLocationRequest -= handler,
                          "DeleteLocation", "Locations", "Delete", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("DeleteLocationResponse",
                          handler => EMSPAPI.OnDeleteLocationResponse += handler,
                          handler => EMSPAPI.OnDeleteLocationResponse -= handler,
                          "DeleteLocation", "Locations", "Delete", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion

            #region EVSEs

            RegisterEvent("PutEVSERequest",
                          handler => EMSPAPI.OnPutEVSERequest += handler,
                          handler => EMSPAPI.OnPutEVSERequest -= handler,
                          "PutEVSE", "EVSEs", "Put", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("PutEVSEResponse",
                          handler => EMSPAPI.OnPutEVSEResponse += handler,
                          handler => EMSPAPI.OnPutEVSEResponse -= handler,
                          "PutEVSE", "EVSEs", "Put", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("PatchEVSERequest",
                          handler => EMSPAPI.OnPatchEVSERequest += handler,
                          handler => EMSPAPI.OnPatchEVSERequest -= handler,
                          "PatchEVSE", "EVSEs", "Patch", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("PatchEVSEResponse",
                          handler => EMSPAPI.OnPatchEVSEResponse += handler,
                          handler => EMSPAPI.OnPatchEVSEResponse -= handler,
                          "PatchEVSE", "EVSEs", "Patch", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("DeleteEVSERequest",
                          handler => EMSPAPI.OnDeleteEVSERequest += handler,
                          handler => EMSPAPI.OnDeleteEVSERequest -= handler,
                          "DeleteEVSE", "EVSEs", "Delete", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("DeleteEVSEResponse",
                          handler => EMSPAPI.OnDeleteEVSEResponse += handler,
                          handler => EMSPAPI.OnDeleteEVSEResponse -= handler,
                          "DeleteEVSE", "EVSEs", "Delete", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion

            #region Connectors

            RegisterEvent("PutConnectorRequest",
                          handler => EMSPAPI.OnPutConnectorRequest += handler,
                          handler => EMSPAPI.OnPutConnectorRequest -= handler,
                          "PutConnector", "Connectors", "Put", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("PutConnectorResponse",
                          handler => EMSPAPI.OnPutConnectorResponse += handler,
                          handler => EMSPAPI.OnPutConnectorResponse -= handler,
                          "PutConnector", "Connectors", "Put", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("PatchConnectorRequest",
                          handler => EMSPAPI.OnPatchConnectorRequest += handler,
                          handler => EMSPAPI.OnPatchConnectorRequest -= handler,
                          "PatchConnector", "Connectors", "Patch", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("PatchConnectorResponse",
                          handler => EMSPAPI.OnPatchConnectorResponse += handler,
                          handler => EMSPAPI.OnPatchConnectorResponse -= handler,
                          "PatchConnector", "Connectors", "Patch", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("DeleteConnectorRequest",
                          handler => EMSPAPI.OnDeleteConnectorRequest += handler,
                          handler => EMSPAPI.OnDeleteConnectorRequest -= handler,
                          "DeleteConnector", "Connectors", "Delete", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("DeleteConnectorResponse",
                          handler => EMSPAPI.OnDeleteConnectorResponse += handler,
                          handler => EMSPAPI.OnDeleteConnectorResponse -= handler,
                          "DeleteConnector", "Connectors", "Delete", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion

            #region Tariffs

            RegisterEvent("PutTariffRequest",
                          handler => EMSPAPI.OnPutTariffRequest += handler,
                          handler => EMSPAPI.OnPutTariffRequest -= handler,
                          "PutTariff", "Tariffs", "Put", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("PutTariffResponse",
                          handler => EMSPAPI.OnPutTariffResponse += handler,
                          handler => EMSPAPI.OnPutTariffResponse -= handler,
                          "PutTariff", "Tariffs", "Put", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("DeleteTariffRequest",
                          handler => EMSPAPI.OnDeleteTariffRequest += handler,
                          handler => EMSPAPI.OnDeleteTariffRequest -= handler,
                          "DeleteTariff", "Tariffs", "Delete", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("DeleteTariffResponse",
                          handler => EMSPAPI.OnDeleteTariffResponse += handler,
                          handler => EMSPAPI.OnDeleteTariffResponse -= handler,
                          "DeleteTariff", "Tariffs", "Delete", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion

            #region Sessions

            RegisterEvent("DeleteSessionsRequest",
                          handler => EMSPAPI.OnDeleteSessionsRequest += handler,
                          handler => EMSPAPI.OnDeleteSessionsRequest -= handler,
                          "DeleteSessions", "Sessions", "Delete", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("DeleteSessionsResponse",
                          handler => EMSPAPI.OnDeleteSessionsResponse += handler,
                          handler => EMSPAPI.OnDeleteSessionsResponse -= handler,
                          "DeleteSessions", "Sessions", "Delete", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("PutSessionRequest",
                          handler => EMSPAPI.OnPutSessionRequest += handler,
                          handler => EMSPAPI.OnPutSessionRequest -= handler,
                          "PutSession", "Sessions", "Put", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("PutSessionResponse",
                          handler => EMSPAPI.OnPutSessionResponse += handler,
                          handler => EMSPAPI.OnPutSessionResponse -= handler,
                          "PutSession", "Sessions", "Put", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("PatchSessionRequest",
                          handler => EMSPAPI.OnPatchSessionRequest += handler,
                          handler => EMSPAPI.OnPatchSessionRequest -= handler,
                          "PatchSession", "Sessions", "Patch", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("PatchSessionResponse",
                          handler => EMSPAPI.OnPatchSessionResponse += handler,
                          handler => EMSPAPI.OnPatchSessionResponse -= handler,
                          "PatchSession", "Sessions", "Patch", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("DeleteSessionRequest",
                          handler => EMSPAPI.OnDeleteSessionRequest += handler,
                          handler => EMSPAPI.OnDeleteSessionRequest -= handler,
                          "DeleteSession", "Sessions", "Delete", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("DeleteSessionResponse",
                          handler => EMSPAPI.OnDeleteSessionResponse += handler,
                          handler => EMSPAPI.OnDeleteSessionResponse -= handler,
                          "DeleteSession", "Sessions", "Delete", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion

            #region CDRs

            RegisterEvent("DeleteCDRsRequest",
                          handler => EMSPAPI.OnDeleteCDRsRequest += handler,
                          handler => EMSPAPI.OnDeleteCDRsRequest -= handler,
                          "DeleteCDRs", "CDRs", "Delete", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("DeleteCDRsResponse",
                          handler => EMSPAPI.OnDeleteCDRsResponse += handler,
                          handler => EMSPAPI.OnDeleteCDRsResponse -= handler,
                          "DeleteCDRs", "CDRs", "Delete", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("PostCDRRequest",
                          handler => EMSPAPI.OnPostCDRRequest += handler,
                          handler => EMSPAPI.OnPostCDRRequest -= handler,
                          "PostCDR", "CDRs", "Post", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("PostCDRResponse",
                          handler => EMSPAPI.OnPostCDRResponse += handler,
                          handler => EMSPAPI.OnPostCDRResponse -= handler,
                          "PostCDR", "CDRs", "Post", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("DeleteCDRRequest",
                          handler => EMSPAPI.OnDeleteCDRRequest += handler,
                          handler => EMSPAPI.OnDeleteCDRRequest -= handler,
                          "DeleteCDR", "CDRs", "Delete", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("DeleteCDRResponse",
                          handler => EMSPAPI.OnDeleteCDRResponse += handler,
                          handler => EMSPAPI.OnDeleteCDRResponse -= handler,
                          "DeleteCDR", "CDRs", "Delete", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion

            #region Tokens

            RegisterEvent("PostTokenRequest",
                          handler => EMSPAPI.OnPostTokenRequest += handler,
                          handler => EMSPAPI.OnPostTokenRequest -= handler,
                          "PostToken", "Tokens", "Post", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("PostTokenResponse",
                          handler => EMSPAPI.OnPostTokenResponse += handler,
                          handler => EMSPAPI.OnPostTokenResponse -= handler,
                          "PostToken", "Tokens", "Post", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #endregion

            #region Command callbacks

            RegisterEvent("ReserveNowCallbackRequest",
                          handler => EMSPAPI.OnReserveNowCallbackRequest += handler,
                          handler => EMSPAPI.OnReserveNowCallbackRequest -= handler,
                          "ReserveNowCallback", "ReservationCallbacks", "Callbacks", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("ReserveNowCallbackResponse",
                          handler => EMSPAPI.OnReserveNowCallbackResponse += handler,
                          handler => EMSPAPI.OnReserveNowCallbackResponse -= handler,
                          "ReserveNowCallback", "ReservationCallbacks", "Callbacks", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("CancelReservationCallbackRequest",
                          handler => EMSPAPI.OnCancelReservationCallbackRequest += handler,
                          handler => EMSPAPI.OnCancelReservationCallbackRequest -= handler,
                          "CancelReservationCallback", "ReservationCallbacks", "Callbacks", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("CancelReservationCallbackResponse",
                          handler => EMSPAPI.OnCancelReservationCallbackResponse += handler,
                          handler => EMSPAPI.OnCancelReservationCallbackResponse -= handler,
                          "CancelReservationCallback", "ReservationCallbacks", "Callbacks", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("StartSessionCallbackRequest",
                          handler => EMSPAPI.OnStartSessionCallbackRequest += handler,
                          handler => EMSPAPI.OnStartSessionCallbackRequest -= handler,
                          "StartSessionCallback", "SessionCallbacks", "Callbacks", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("StartSessionCallbackResponse",
                          handler => EMSPAPI.OnStartSessionCallbackResponse += handler,
                          handler => EMSPAPI.OnStartSessionCallbackResponse -= handler,
                          "StartSessionCallback", "SessionCallbacks", "Callbacks", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("StopSessionCallbackRequest",
                          handler => EMSPAPI.OnStopSessionCallbackRequest += handler,
                          handler => EMSPAPI.OnStopSessionCallbackRequest -= handler,
                          "StopSessionCallback", "SessionCallbacks", "Callbacks", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("StopSessionCallbackResponse",
                          handler => EMSPAPI.OnStopSessionCallbackResponse += handler,
                          handler => EMSPAPI.OnStopSessionCallbackResponse -= handler,
                          "StopSessionCallback", "SessionCallbacks", "CaCallbackslback", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);


            RegisterEvent("UnlockConnectorCallbackRequest",
                          handler => EMSPAPI.OnUnlockConnectorCallbackRequest += handler,
                          handler => EMSPAPI.OnUnlockConnectorCallbackRequest -= handler,
                          "UnlockConnectorCallback", "Callbacks", "Request", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            RegisterEvent("UnlockConnectorCallbackResponse",
                          handler => EMSPAPI.OnUnlockConnectorCallbackResponse += handler,
                          handler => EMSPAPI.OnUnlockConnectorCallbackResponse -= handler,
                          "UnlockConnectorCallback", "Callbacks", "Response", "All").
            RegisterDefaultConsoleLogTarget(this).
            RegisterDefaultDiscLogTarget(this);

            #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
            }
예제 #27
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
        }
예제 #28
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
            }
예제 #29
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
            }
예제 #30
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
            }