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)); } }
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)); }
public static string Serialize(this MultipleRequestResponse response) { return(String.Format(MultipleRequestResponseFormat, response.Id, response.Result)); }
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); }