private Func <object, Task <object> > WrapHandler <T1, T2, T3, T4, T5, T6>(Func <T1, T2, T3, T4, T5, T6, Task> function) { Func <object, Task <object> > wrappedHandler = async(input) => { var parameters = (object[])input; await function((T1)parameters[0], (T2)parameters[1], (T3)parameters[2], (T4)parameters[3], (T5)parameters[4], (T6)parameters[5]); return(DevicePayloadFactory.Create(this)); }; return(wrappedHandler); }
public async Task Provision <T>(T device) where T : Device { device.Server = Server; EnsureType(device); await _provision(DevicePayloadFactory.Create(device)); if (device is IInitializableAsync) { await((IInitializableAsync)device).Initialize(); } else if (device is IInitializable) { ((IInitializable)device).Initialize(); } }
public async Task Discover <T>(T device) where T : Device { device.Server = Server; EnsureType(device); MemoryRegistry.Instance.Save(device); await _discover(DevicePayloadFactory.Create(device)); if (device is IInitializableAsync) { await((IInitializableAsync)device).Initialize(); } else if (device is IInitializable) { ((IInitializable)device).Initialize(); } }
public async Task Prepare <T>(T device) where T : Device { await _prepare.Invoke(DevicePayloadFactory.Create(device)); }