コード例 #1
0
 private WoopsaValue HandleCall(IWoopsaValue requestsArgument)
 {
     using (new WoopsaServerModelAccessFreeSection(_server))
     {
         ServerRequest[] requestsList             = JsonSerializer.Deserialize <ServerRequest[]>(requestsArgument.AsText, WoopsaUtils.ObjectToInferredTypesConverterOptions);
         List <MultipleRequestResponse> responses = new List <MultipleRequestResponse>();
         foreach (var request in requestsList)
         {
             string result = null;
             try
             {
                 using (new WoopsaServerModelAccessLockedSection(_server))
                 {
                     if (request.Verb.Equals(WoopsaFormat.VerbRead))
                     {
                         result = _server.ReadValue(request.Path);
                     }
                     else if (request.Verb.Equals(WoopsaFormat.VerbMeta))
                     {
                         result = _server.GetMetadata(request.Path);
                     }
                     else if (request.Verb.Equals(WoopsaFormat.VerbWrite))
                     {
                         result = _server.WriteValueDeserializedJson(request.Path, request.Value);
                     }
                     else if (request.Verb.Equals(WoopsaFormat.VerbInvoke))
                     {
                         result = _server.InvokeMethodDeserializedJson(request.Path,
                                                                       request.Arguments);
                     }
                 }
             }
             catch (Exception e)
             {
                 result = WoopsaFormat.Serialize(e);
             }
             MultipleRequestResponse response = new MultipleRequestResponse();
             response.Id     = request.Id;
             response.Result = result;
             responses.Add(response);
         }
         return(WoopsaValue.CreateUnchecked(responses.Serialize(), WoopsaValueType.JsonData));
     }
 }
コード例 #2
0
ファイル: WoopsaMultiRequest.cs プロジェクト: mullerch/Woopsa
        private WoopsaValue HandleCall(IWoopsaValue requestsArgument)
        {
            var serializer = new JavaScriptSerializer();

            ServerRequest[] requestsList             = serializer.Deserialize <ServerRequest[]>(requestsArgument.AsText);
            List <MultipleRequestResponse> responses = new List <MultipleRequestResponse>();

            foreach (var request in requestsList)
            {
                string result = null;
                try
                {
                    if (request.Verb.Equals(WoopsaFormat.VerbRead))
                    {
                        result = _server.ReadValue(request.Path);
                    }
                    else if (request.Verb.Equals(WoopsaFormat.VerbMeta))
                    {
                        result = _server.GetMetadata(request.Path);
                    }
                    else if (request.Verb.Equals(WoopsaFormat.VerbWrite))
                    {
                        result = _server.WriteValueDeserializedJson(request.Path, request.Value);
                    }
                    else if (request.Verb.Equals(WoopsaFormat.VerbInvoke))
                    {
                        result = _server.InvokeMethodDeserializedJson(request.Path,
                                                                      request.Arguments);
                    }
                }
                catch (Exception e)
                {
                    result = WoopsaFormat.Serialize(e);
                }
                MultipleRequestResponse response = new MultipleRequestResponse();
                response.Id     = request.Id;
                response.Result = result;
                responses.Add(response);
            }
            return(WoopsaValue.CreateUnchecked(responses.Serialize(), WoopsaValueType.JsonData));
        }
コード例 #3
0
 public static string Serialize(this MultipleRequestResponse response)
 {
     return(String.Format(MultipleRequestResponseFormat, response.Id, response.Result));
 }
コード例 #4
0
 private WoopsaValue HandleCall(IWoopsaValue requestsArgument)
 {
     var serializer = new JavaScriptSerializer();
     ServerRequest[] requestsList = serializer.Deserialize<ServerRequest[]>(requestsArgument.AsText);
     List<MultipleRequestResponse> responses = new List<MultipleRequestResponse>();
     foreach (var request in requestsList)
     {
         string result = null;
         try
         {
             if (request.Verb.Equals(WoopsaFormat.VerbRead))
                 result = _server.ReadValue(request.Path);
             else if (request.Verb.Equals(WoopsaFormat.VerbMeta))
                 result = _server.GetMetadata(request.Path);
             else if (request.Verb.Equals(WoopsaFormat.VerbWrite))
                 result = _server.WriteValueDeserializedJson(request.Path, request.Value);
             else if (request.Verb.Equals(WoopsaFormat.VerbInvoke))
                 result = _server.InvokeMethodDeserializedJson(request.Path,
                     request.Arguments);
         }
         catch (Exception e)
         {
             result = WoopsaFormat.Serialize(e);
         }
         MultipleRequestResponse response = new MultipleRequestResponse();
         response.Id = request.Id;
         response.Result = result;
         responses.Add(response);
     }
     return WoopsaValue.CreateUnchecked(responses.Serialize(), WoopsaValueType.JsonData);
 }