Example #1
0
        /// <summary>
        /// 外部接口设置VOBC某产品实体的某设备烧录成功状态,仅用于更新烧录成功失败状态,区别于常规状态设置SetProductDeviceState
        /// </summary>
        /// <param name="ip">vobc产品IP</param>
        /// <param name="systype">产品子系统类型</param>
        /// <param name="fileType">产品子系统更新文件类型</param>
        /// <returns>无</returns>
        public void SetProductVOBCDeviceState(string ip,
                                              vobcSystemType systype, Common.vobcFileType fileType)
        {
            //更新状态
            bool updateState = true;

            //根据IP获取对应的product内容
            VOBCProduct product = this.Find(x => (x.Ip == ip)) as VOBCProduct;

            //product非空验证
            if (null != product)
            {
                //依据检索出的product 根据产品实体名称 获取对应的device内容
                IDevice device = product.CBelongsDevice.Find(y => y.DeviceName == CommonMethod.GetStringByType(systype));

                //device非空验证
                if (null != device)
                {
                    //根据子子系统类型  获取该子子系统的更新结果
                    switch (systype)
                    {
                    case vobcSystemType.ATP_1:
                    case vobcSystemType.ATP_2:
                    case vobcSystemType.ATP_3:
                        updateState = product.CheckUpdateResultTypeFile("ATP");
                        break;

                    case vobcSystemType.ATO_1:
                    case vobcSystemType.ATO_2:
                        updateState = product.CheckUpdateResultTypeFile("ATO");
                        break;

                    case vobcSystemType.COM_1:
                    case vobcSystemType.COM_2:
                        updateState = product.CheckUpdateResultTypeFile("COM");
                        break;

                    case vobcSystemType.MMI:
                        updateState = product.CheckUpdateResultTypeFile("MMI");
                        break;

                    case vobcSystemType.CCOV:
                        updateState = product.CheckUpdateResultTypeFile("CCOV");
                        break;

                    default:
                        //TODO  不处理
                        break;
                    }

                    //根据子子系统更新结果 赋值更新状态
                    device.State = updateState ? "更新成功" : "更新失败";

                    ///通知界面数据变化
                    base.dataModify.Modify();

                    //记录日志
                    LogManager.InfoLog.LogProcInfo("IProContainer", "SetProductVOBCDeviceProcState", "设置IP为" + ip + "的产品" + product.ProductID + "中的设备" + device.DeviceName + "的烧录状态为成功");
                }
                else
                {
                    //记录异常日志
                    LogManager.InfoLog.LogProcError("IProContainer", "SetProductVOBCDeviceProcState", "设置IP为" + ip + "的产品" + product.ProductID + "中的设备" + CommonMethod.GetStringByType(systype) + "的烧录状态时,未检索到该device");
                }
            }
            else
            {
                //记录异常日志
                LogManager.InfoLog.LogProcError("IProContainer", "SetProductVOBCDeviceProcState", "设置VOBC产品实体烧录状态时,未获取到IP为" + ip + "的产品");
            }
        }