private Task <OperationResultGeneralRep> SyncSetTerminalParas(TerminalOperationClient client, string terminalCode, TerminalSettingsIssuedModel model)
        {
            TerminalParasData paraItems = new TerminalParasData();

            if (model.车牌颜色.HasValue)
            {
                paraItems.车牌颜色 = (PlateColor)model.车牌颜色.Value;
            }
            paraItems.终端心跳发送间隔         = model.终端心跳发送间隔;
            paraItems.主服务器IP地址或域名      = model.主服务器IP地址或域名;
            paraItems.备份服务器IP地址或域名     = model.备份服务器IP地址或域名;
            paraItems.务器TCP端口          = model.务器TCP端口;
            paraItems.休眠时汇报时间间隔        = model.休眠时汇报时间间隔;
            paraItems.紧急报警时汇报时间间隔      = model.紧急报警时汇报时间间隔;
            paraItems.缺省时间汇报间隔         = model.缺省时间汇报间隔;
            paraItems.最高速度             = model.最高速度;
            paraItems.超速持续时间           = model.超速持续时间;
            paraItems.连续驾驶时间门限         = model.连续驾驶时间门限;
            paraItems.当天累计驾驶时间门限       = model.当天累计驾驶时间门限;
            paraItems.最小休息时间           = model.最小休息时间;
            paraItems.最长停车时间           = model.最长停车时间;
            paraItems.超速报警预警差值         = model.超速报警预警差值;
            paraItems.疲劳驾驶预警差值         = model.疲劳驾驶预警差值;
            paraItems.车辆里程表读数          = model.车辆里程表读数;
            paraItems.公安交通管理部门颁发的机动车号牌 = model.公安交通管理部门颁发的机动车号牌;

            return(client.SetTerminalParasAsync(terminalCode, new TerminalParasSettingData()
            {
                ParaItems = paraItems
            }));
        }
        public async Task <ActionResult> UpdateTerminalSetting(TerminalSettingsIssuedModel model)
        {
            ActionResult            result  = null;
            List <TerminalWCfModel> wcfList = null;

            if (!this.CheckWCF(model.ListVehicles, out result, out wcfList))
            {
                return(result);
            }
            // 记录错误信息
            string errorMsg       = string.Empty;
            bool   updateTerminal = true;

            // 调用wcf服务 如果终端属于同一个wcf地址 那么可以公用一个client实例
            try
            {
                var syncResult = await this.DoOperation <TerminalSettingsIssuedModel, OperationResultGeneralRep>(wcfList, model, SyncSetTerminalParas).ConfigureAwait(false);

                int           index            = 0;
                string        valuesSql        = string.Empty;
                string        setInfo          = GetProperties <TerminalSettingsIssuedModel>(model);
                string        wanIP            = GetRemoteAddress();
                DateTime      setDTime         = DateTime.Now;
                List <string> listTerminalCode = new List <string>();
                foreach (var item in syncResult)
                {
                    string plateNum       = wcfList[index].PlateNum;
                    string terminalCode   = wcfList[index].TerminalCode;
                    string resultResponse = "Code:" + (int)(OperationResultCode)item.Code + ";Message:" + item.Message;

                    // 记录日志 文本消息下发 这里拼接sql语句 批量插入
                    valuesSql += string.Format("('{0}','{1}',{2},'{3}',{4},'{5}','{6}',{7},'{8}'),",
                                               terminalCode, plateNum, (byte)TerminalSettingTypeEnum.TerminalSetup_Update,
                                               setInfo, item.State ? 1 : 0, resultResponse, wanIP, base.CurrentUserID, setDTime);
                    if (!item.State)
                    {
                        //errorMsg += string.Format("<div style='font-weight:bolder;'>" + UIText.TerminalSetting_PlateNumber +
                        //                                              ":{0}{1},"+PromptInformation.FailReason+":{2}{3}</div>", plateNum, "<br/>",
                        //                                             item.Code.ToString(), "<hr/>");
                        errorMsg += ErrorMesage(plateNum, item.Code.ToString());
                    }
                    else
                    {
                        //这里记录修改成功的终端值
                        listTerminalCode.Add(terminalCode);
                    }
                    index++;
                }

                //如果下发终端成功了 则修改TMS表中对应终端的数据
                if (listTerminalCode.Count > 0)
                {
                    TerminalSettingsSectionModel sectionModel = new TerminalSettingsSectionModel()
                    {
                        最高速度       = model.最高速度,
                        超速持续时间     = model.最高速度,
                        连续驾驶时间门限   = model.最高速度,
                        最小休息时间     = model.最小休息时间,
                        当天累计驾驶时间门限 = model.当天累计驾驶时间门限,
                        最长停车时间     = model.最长停车时间
                    };
                    updateTerminal = TerminalBLL.UpdateTerminals(listTerminalCode, sectionModel);
                }
                // 批量插入日志
                TerminalSettingsBLL.BatchInsertTerminalOperationsLog(valuesSql.TrimEnd(','));
            }
            catch (Exception ex)
            {
                LogHelper.TerminalSettingsErrorLog("下发终端设置异常:" + ex.Message);
                return(Json(new { Success = false, Message = PromptInformation.RemotingError }));
            }

            if (!updateTerminal)
            {
                return(Json(new { Success = false, Message = PromptInformation.TerminalSetting_UpdateTerminalSettingFail }));
            }
            if (string.IsNullOrEmpty(errorMsg))
            {
                return(Json(new { Success = true, Message = PromptInformation.TerminalSetting_UpdateTerminalSettingSuccess }));
            }
            else
            {
                return(Json(new { Success = false, Message = errorMsg }));
            }
        }