// Main request execution logic.
        public ProcessResponse Process(ProcessRequest request)
        {
            // set actual timestamp
            var serviceReceived = DateTime.Now.Ticks;

            // create response
            if (args.Verbose)
            {
                Console.WriteLine("Requested message: {0}", request.Id);
            }
            var response = new ProcessResponse(request)
            {
                ServiceReceived = serviceReceived
            };

            // simulation execution
            InnerProccess();

            // set actual timestamp
            response.ServiceSent = DateTime.Now.Ticks;
            if (args.Verbose)
            {
                Console.WriteLine("Responded message: {0}", request.Id);
            }

            return(response);
        }
        // Main request execution logic.
        public ProcessResponse Process(ProcessRequest request)
        {
            // set actual timestamp
            var serviceReceived = DateTime.Now.Ticks;

            // create response
            if (args.Verbose) Console.WriteLine("Requested message: {0}", request.Id);
            var response = new ProcessResponse(request) { ServiceReceived = serviceReceived };

            // simulation execution
            InnerProccess();

            // set actual timestamp
            response.ServiceSent = DateTime.Now.Ticks;
            if (args.Verbose) Console.WriteLine("Responded message: {0}", request.Id);

            return response;
        }