示例#1
0
        public virtual async Task <SkillResponse> GetSkillResponse(SkillRequest skillRequest, TokenUser tokenUser)
        {
            if (!this.skillRequestValidator.IsValid(skillRequest))
            {
                throw new ArgumentNullException("skillRequest");
            }

            if (tokenUser == null)
            {
                throw new ArgumentNullException("tokenUser");
            }

            this.logger.LogTrace("BEGIN GetSkillResponse. RequestId: {0}.", skillRequest.Request.RequestId);

            IBaseRequestHandler requestHandler = this.GetRequestHandler();

            if (requestHandler == null)
            {
                throw new Exception(string.Format("Cannot successfully route request. The request handler is not bound to the container.", skillRequest.Request.Type));
            }

            // Handle the request
            SkillResponse skillResponse = await Task.Run(() => requestHandler.Handle(skillRequest, tokenUser));

            this.logger.LogTrace("END GetSkillResponse. RequestId: {0}.", skillRequest.Request.RequestId);

            return(skillResponse);
        }
 private void AddContextToRequestHandler(IBaseRequestHandler handler)
 {
     handler.Context = new RequestHandlerContext
     {
         ConnectionId = Context.ConnectionId,
         Headers      = new Dictionary <string, string>()
     };
     foreach (var header in Context.Headers)
     {
         handler.Context.Headers.Add(header.Key, header.Value);
     }
 }
        public virtual async Task <SkillResponse> GetSkillResponse(SkillRequest skillRequest)
        {
            this.logger.LogTrace("BEGIN GetSkillResponse. RequestId: {0}.", skillRequest.Request.RequestId);

            IBaseRequestHandler requestHandler = this.GetRequestHandler();

            if (requestHandler == null)
            {
                throw new Exception(string.Format("Cannot successfully route request. The request handler is not bound to the container.", skillRequest.Request.Type));
            }

            // Handle the request
            SkillResponse skillResponse = await Task.Run(() => requestHandler.Handle(skillRequest));

            this.logger.LogTrace("END GetSkillResponse. RequestId: {0}.", skillRequest.Request.RequestId);

            return(skillResponse);
        }
 public void SetNextChain(IBaseRequestHandler handler)
 {
     this.nextChain = handler;
 }
示例#5
0
        public RequestParser()
        {
            this.headChain = new XMLRequestHandler();

            this.headChain.SetNextChain(new JSONRequestHandler());
        }