public HubMethodCallbackEx(string id, string methodName, HubConnectionEx connection, Func <string[], Task> callback)
 {
     this.MethodName  = methodName;
     this.Id          = id;
     this._connection = connection;
     this._callback   = callback;
 }
Exemple #2
0
        public static TResult Deserialize <TResult>(this HubConnectionEx connection, string str)
        {
            Console.WriteLine("deserialize json: " + str);
            var result = JsonSerializer.Deserialize <TResult>(str, connection.JsonSerializerOptions);

            return(result);
        }
Exemple #3
0
        public static IDisposable On <TResult1, TResult2, TResult3, TResult4, TResult5, TResult6, TResult7, TResult8, TResult9, TResult10>(this HubConnectionEx connection, string methodName,
                                                                                                                                           Func <TResult1, TResult2, TResult3, TResult4, TResult5, TResult6, TResult7, TResult8, TResult9, TResult10, Task> handler)
        {
            if (string.IsNullOrEmpty(methodName))
            {
                throw new ArgumentNullException(nameof(methodName));
            }
            if (handler == null)
            {
                throw new ArgumentNullException(nameof(handler));
            }

            var callbackId = Guid.NewGuid().ToString();

            var callback = new HubMethodCallbackEx(callbackId, methodName, connection,
                                                   (payloads) =>
            {
                TResult1 t1   = default;
                TResult2 t2   = default;
                TResult3 t3   = default;
                TResult4 t4   = default;
                TResult5 t5   = default;
                TResult6 t6   = default;
                TResult7 t7   = default;
                TResult8 t8   = default;
                TResult9 t9   = default;
                TResult10 t10 = default;

                if (payloads.Length > 0)
                {
                    t1 = connection.Deserialize <TResult1>(payloads[0]);
                }
                if (payloads.Length > 1)
                {
                    t2 = connection.Deserialize <TResult2>(payloads[1]);
                }
                if (payloads.Length > 2)
                {
                    t3 = connection.Deserialize <TResult3>(payloads[2]);
                }
                if (payloads.Length > 3)
                {
                    t4 = connection.Deserialize <TResult4>(payloads[3]);
                }
                if (payloads.Length > 4)
                {
                    t5 = connection.Deserialize <TResult5>(payloads[4]);
                }
                if (payloads.Length > 5)
                {
                    t6 = connection.Deserialize <TResult6>(payloads[5]);
                }
                if (payloads.Length > 6)
                {
                    t7 = connection.Deserialize <TResult7>(payloads[6]);
                }
                if (payloads.Length > 7)
                {
                    t8 = connection.Deserialize <TResult8>(payloads[7]);
                }
                if (payloads.Length > 8)
                {
                    t9 = connection.Deserialize <TResult9>(payloads[8]);
                }
                if (payloads.Length > 9)
                {
                    t10 = connection.Deserialize <TResult10>(payloads[9]);
                }

                return(handler(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10));
            }
                                                   );

            connection.RegisterHandle(methodName, callback);

            return(callback);
        }
Exemple #4
0
 public static IDisposable On <TResult1, TResult2, TResult3, TResult4, TResult5, TResult6, TResult7, TResult8, TResult9>(this HubConnectionEx connection, string methodName,
                                                                                                                         Func <TResult1, TResult2, TResult3, TResult4, TResult5, TResult6, TResult7, TResult8, TResult9, Task> handler)
 => connection.On <TResult1, TResult2, TResult3, TResult4, TResult5, TResult6, TResult7, TResult8, TResult9, object>(methodName,
                                                                                                                     (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10) => handler(t1, t2, t3, t4, t5, t6, t7, t8, t9));
Exemple #5
0
        public static string Serialize <TObject>(this HubConnectionEx connection, TObject obj)
        {
            var result = JsonSerializer.Serialize(obj, obj.GetType(), connection.JsonSerializerOptions);

            return(result);
        }