/// <summary> /// 处理控制数据块 /// </summary> /// <param name="controlDataBlock"></param> public static XResponseMessage ProcessControlData(ControlDataBlock controlDataBlock) { if (controlDataBlock == null) { throw new ArgumentNullException("controlDataBlock"); } //todo 此处处理设备控制指令有重复,需要再仔细考虑 if (controlDataBlock.ControlCmds != null && controlDataBlock.ControlCmds.Any()) { var result = ControlDataProcessor.ProcessControlQueries(controlDataBlock.ControlQueries); if (result != null && result.Success != ErrorType.NoError) { return(result); } } if (controlDataBlock.ControlQueries != null && controlDataBlock.ControlQueries.Any()) { var result = ControlDataProcessor.ProcessControlQueries(controlDataBlock.ControlQueries); if (result != null && result.Success == ErrorType.NoError) { return(result); } } if (controlDataBlock.ControlResults != null && controlDataBlock.ControlResults.Any()) { var result = ControlDataProcessor.ProcessControlResults(controlDataBlock.ControlResults); if (result != null && result.Success == ErrorType.NoError) { return(result); } } //return null; return(ResultHelper.CreateMessage("", ErrorType.NoError)); }
public async Task <XResponseMessage> ProcessAsync(ControlDataBlock controlDataBlock) { if (controlDataBlock == null) { return(null); } if (controlDataBlock.ControlQueries != null) { try { var result = await AhnqIotContainer.Container.Resolve <ControlQueryProcess>() .ProcessAsync(controlDataBlock.ControlQueries); return(ResultHelper.CreateMessage("查询控制指令", obj: result)); } catch (AggregateException ex) { return(ResultHelper.CreateExceptionMessage(ex, "查询控制指令失败", ErrorType.InternalError)); } } if (controlDataBlock.ControlResults == null) { return(null); } { try { var result = await AhnqIotContainer.Container.Resolve <ControlResultProcess>() .ProcessAsync(controlDataBlock.ControlResults); return(ResultHelper.CreateMessage("上传控制指令", obj: result)); } catch (AggregateException ex) { return(ResultHelper.CreateExceptionMessage(ex, "上传控制指令失败", ErrorType.InternalError)); } } }