public async Task <object> GetInvoker(IDictionary <string, object> input) { var service = (string)input["service"]; var callbacks = (IDictionary <string, object>)input["callbacks"]; var server = new MyServer(service, callbacks); return((Func <object, Task <object> >)(async(i) => { var opts = (IDictionary <string, object>)i; var method = (string)opts["method"]; var topic = opts.ContainsKey("topic") ? (string)opts["topic"] : null; var item = opts.ContainsKey("item") ? (string)opts["item"] : null; switch (method) { case "Register": server.Register(); break; case "Unregister": server.Unregister(); break; case "Advise": await Task.Run(() => server.Advise(topic, item)); break; case "Disconnect": server.Disconnect(); break; case "Pause": server.Pause(); break; case "Resume": server.Resume(); break; case "Dispose": server.Dispose(); break; case "Service": return server.Service; case "IsRegistered": return server.IsRegistered; } return null; })); }
public async Task<object> GetInvoker(IDictionary<string, object> input) { var service = (string)input["service"]; var callbacks = (IDictionary<string, object>)input["callbacks"]; var server = new MyServer(service, callbacks); return (Func<object, Task<object>>)(async (i) => { var opts = (IDictionary<string, object>)i; var method = (string)opts["method"]; var topic = opts.ContainsKey("topic") ? (string)opts["topic"] : null; var item = opts.ContainsKey("item") ? (string)opts["item"] : null; switch (method) { case "Register": server.Register(); break; case "Unregister": server.Unregister(); break; case "Advise": await Task.Run(() => server.Advise(topic, item)); break; case "Disconnect": server.Disconnect(); break; case "Pause": server.Pause(); break; case "Resume": server.Resume(); break; case "Dispose": server.Dispose(); break; case "Service": return server.Service; case "IsRegistered": return server.IsRegistered; } return null; }); }