public Response icar_SelMultiPathAlarm(CmdParam.ParamType paramType_0, string string_1, string string_2, CmdParam.CommMode commMode_0, PathAlarmList pathAlarmList_0) { Response response = new Response(); base.WriteLog(paramType_0.ToString(), string_1); if (!base.CheckCar(paramType_0, string_1, string_2)) { response.ErrorMsg = base.ErrorMsg; return response; } if (!base.isStartCommon()) { response.ErrorMsg = base.ErrorMsg; return response; } Car car = new Car(); int num = -1; int newOrderId = -1; DataTable table = null; object obj2 = null; PathAlarm alarm = null; object[] objArray = new object[4]; foreach (Bussiness.CarInfo info in base.carInfoList) { try { int num3 = -1; newOrderId = SendBase.CarCmdSend.GetNewOrderId(); base.SaveCmdParm(newOrderId.ToString() + "|" + info.CarId.ToString() + ";"); string orderIDParam = response.OrderIDParam; response.OrderIDParam = orderIDParam + newOrderId.ToString() + "|" + info.CarId.ToString() + ";"; for (int i = 0; i < pathAlarmList_0.Count; i++) { alarm = (PathAlarm) pathAlarmList_0[i]; table = car.GetNewPathId(info.CarId, alarm.PathName, num3); if ((table == null) || (table.Rows.Count <= 0)) { goto Label_037E; } num = int.Parse(table.Rows[0][0].ToString()); alarm.ID = num; if (-1 == num) { goto Label_033E; } num3 = int.Parse(table.Rows[0][1].ToString()); objArray[0] = num.ToString(); objArray[1] = alarm.PointCount.ToString(); objArray[2] = this.method_7(alarm.Points); objArray[3] = alarm.PathDif; obj2 = objArray; base.AddUpDataLog(newOrderId, info.CarNum, RespCodeParam.GetRespName(((int) pathAlarmList_0.OrderCode) + 0x80), ""); car.InsertPathIdsIntoPathParam(info.CarId, base.WorkId.ToString(), newOrderId.ToString(), alarm.ID.ToString(), num.ToString()); if (i == (pathAlarmList_0.Count - 1)) { object pvRegions = pathAlarmList_0.pvRegions; car.InsertPathIntoGisCar(info.CarId, base.WorkId, newOrderId, pathAlarmList_0.AlarmPathDot); } response.ResultCode = SendBase.CarCmdSend.icar_SetCommonCmd(base.WorkId, newOrderId, info.SimNum, (CmdParam.CmdCode) pathAlarmList_0.OrderCode, ref obj2, commMode_0); if ((pathAlarmList_0.Count - i) > 1) { Thread.Sleep(300); } if (response.ResultCode != 0L) { base.WriteError(base.WorkId.ToString(), info.SimNum, pathAlarmList_0.OrderCode.ToString()); } car.UpdatePathAlarm(info.CarId, alarm.PathName, 1, 0, 0, alarm.ID, "", "", alarm.PathFlag, alarm.DriEnough, alarm.DriNoEnough); } continue; Label_033E: response.ErrorMsg = base.errMsg.ErrorText = string.Format("\"{0}\"偏移路线ID已满,请删除部分偏移路线!", info.CarNum); base.log.WriteError(base.errMsg); return response; Label_037E: response.ErrorMsg = base.errMsg.ErrorText = string.Format("\"{0}\"获取偏移路线ID失败!", info.CarNum); base.log.WriteError(base.errMsg); return response; } catch (Exception exception) { response.ErrorMsg = base.ErrorMsg = base.errMsg.ErrorText = "下发消息指令时发生错误!"; base.log.WriteError(base.errMsg, exception); } } return response; }