Ejemplo n.º 1
0
            protected override void InvocationResult(params object[] args)
            {
                IRTRequest request = parent.HandleResult(args, parent.sentRequests, "result");

                if (request != null)
          #if NET_35
                { parent.sentRequests.Remove(request.Id); }
          #else
                { parent.sentRequests.TryRemove(request.Id, out _); }
          #endif
            }
Ejemplo n.º 2
0
        private IRTRequest HandleResult <T>(Object[] args, IDictionary <String, T> requestMap, String resultKey) where T : IRTRequest
        {
            if (args == null || args.Length < 1)
            {
                Log.log(Backendless.BACKENDLESSLOG, "subscription result is null or empty");
                return(null);
            }

            AnonymousObject result = (AnonymousObject)WeborbSerializationHelper.Deserialize((byte[])args[0]);

            String id = WeborbSerializationHelper.AsString(result, "id");

            Log.log(Backendless.BACKENDLESSLOG, String.Format("Got result for subscription {0}", id));

            IRTRequest request = requestMap[id];

            if (request == null)
            {
                Log.log(Backendless.BACKENDLESSLOG, String.Format("There is no handler for subscription {0}", id));
                return(null);
            }

            Object error = WeborbSerializationHelper.AsObject(result, "error");

            if (error != null)
            {
                Log.log(Backendless.BACKENDLESSLOG, String.Format("got error {0}", error));
                BackendlessFault fault = new BackendlessFault(error.ToString());
                request.Callback.errorHandler(fault);
                return(request);
            }

            IAdaptingType data = WeborbSerializationHelper.AsAdaptingType(result, resultKey);

            request.Callback.responseHandler(data);
            return(request);
        }