コード例 #1
0
ファイル: RpcSessionContext.cs プロジェクト: hozuki/piyopiyo
 public void SaveRequestBody([NotNull] JsonRpcRequestBase body)
 {
     RawContext.Properties[BodyKey] = body;
 }
コード例 #2
0
ファイル: JsonRpcValidator.cs プロジェクト: hozuki/piyopiyo
        private void ValidateRequestFormat([NotNull] HttpContextPipelineHandlerContext context, [NotNull] out JsonRpcRequestBase payload)
        {
            var c = RpcSessionContext.Wrap(context);

            foreach (var validator in _validators)
            {
                validator.Validate(c);
            }

            var body = context.HttpContext.Request.Body.ReadAllBytes();
            var o    = Utilities.Serializer.Deserialize <JObject>(body);

            Trace.Assert(o != null, nameof(o) + " != null");

            // TODO: check object properties
            // e.g.: o.ContainsKey("method")

            if (o.ContainsKey("id"))
            {
                payload = o.ToObject <JsonRpcRequest>();
            }
            else
            {
                payload = o.ToObject <JsonRpcNotification>();
            }
        }