private IDeviceGroup Traverse(DeviceGroupConfig deviceGroupConfig, Stack <IDeviceGroup> stack = null) { if (stack == null) { stack = new Stack <IDeviceGroup>(); } var dt = ServiceLocator.GetInstance <IDeviceGroup>(); //TODO //dt.Init(deviceTreeConfig) stack.Push(dt); foreach (var childDeviceTreeConfig in deviceGroupConfig.GroupConfigCollection) { var childDt = Traverse(childDeviceTreeConfig, stack); stack.Peek().DeviceGroups.Add(childDt); } stack.Pop(); return(dt); }
private IDeviceGroup Get(DeviceGroupConfig deviceGroupConfig) { return(TraverseEx.TraverseMap(deviceGroupConfig, x => DeviceGroupFactory.Create(x), x => x.GroupConfigCollection, (s, t) => s.DeviceGroups.Add(t))); }
public IDeviceGroup Map(DeviceGroupConfig deviceGroupConfig) { var deviceGroup = Mapper.Map <DeviceGroupConfig, IDeviceGroup>(deviceGroupConfig); AppendParent(deviceGroup); return(deviceGroup); }
private IDeviceGroup Traverse(DeviceGroupConfig deviceGroupConfig) { return(TraverseEx.TraverseMap(deviceGroupConfig, x => { var dt = ServiceLocator.GetInstance <IDeviceGroup>(); //TODO //dt.Init(deviceTreeConfig) return dt; }, x => x.GroupConfigCollection, (s, t) => s.DeviceGroups.Add(t))); }
// private Stack<IDeviceTree> _stack; public IDeviceGroup Init(DeviceGroupConfig deviceGroupConfig) { var dt = Traverse(deviceGroupConfig); return(dt); }