protected virtual async Task <FloorSensor> CreateSensor(ActuatorItemData arg) { SensorInitializer <IActuatorX> initializer = new SensorInitializer <IActuatorX>(); await SetupFloorInitializer(initializer, arg); switch (arg.ActuatorType) { case 5: case 0: throw new InvalidOperationException(); case 1: return(new FloorSensorC01(initializer)); case 2: return(new FloorSensorC02(initializer)); case 3: var directionInitializer = new DirectionIntializer { Direction = GetDirection(arg.Data) }; await SetupFloorInitializer(directionInitializer, arg); return(new FloorSensorC03(directionInitializer)); case 4: case 8: var constrainSensorInitalizer = new ItemConstrainSensorInitalizer <IActuatorX> { Data = builder.GetItemFactory(arg.Data) }; await SetupFloorInitializer(constrainSensorInitalizer, arg); if (arg.ActuatorType == 4) { return(new FloorSensorC04(constrainSensorInitalizer)); } else { return(new FloorSensorC08(constrainSensorInitalizer)); } case 6: return(new FloorSensorC06(initializer)); case 7: return(new FloorSensorC07(initializer)); default: throw new InvalidOperationException(); } }
public FloorSensorC03(DirectionIntializer initializer) : base(initializer) { Direction = initializer.Direction; }