Ejemplo n.º 1
0
        private void ExecuteMultiRequestLocally(WoopsaClientMultiRequest multiRequest)
        {
            // Execute multi request locally
            foreach (var item in multiRequest.ClientRequests)
            {
                try
                {
                    switch (item.Request.Verb)
                    {
                    case WoopsaFormat.VerbMeta:
                        item.Result = new WoopsaClientRequestResult()
                        {
                            ResultType = WoopsaClientRequestResultType.Meta,
                            Meta       = ClientProtocol.Meta(item.Request.Path)
                        };
                        break;

                    case WoopsaFormat.VerbInvoke:
                        item.Result = new WoopsaClientRequestResult()
                        {
                            ResultType = WoopsaClientRequestResultType.Value,
                            Value      = ClientProtocol.Invoke(item.Request.Path,
                                                               item.Request.Arguments.ToNameValueCollection())
                        };
                        break;

                    case WoopsaFormat.VerbRead:
                        item.Result = new WoopsaClientRequestResult()
                        {
                            ResultType = WoopsaClientRequestResultType.Value,
                            Value      = ClientProtocol.Read(item.Request.Path)
                        };
                        break;

                    case WoopsaFormat.VerbWrite:
                        ClientProtocol.Write(item.Request.Path, item.Request.Value);
                        item.Result = new WoopsaClientRequestResult()
                        {
                            ResultType = WoopsaClientRequestResultType.Value,
                            Value      = WoopsaValue.Null
                        };
                        break;
                    }
                }
                catch (Exception e)
                {
                    item.Result = new WoopsaClientRequestResult()
                    {
                        ResultType = WoopsaClientRequestResultType.Error,
                        Error      = e
                    };
                    item.IsDone = true;
                }
            }
        }