/// <summary> /// add:增加nodemap和station实体 /// update:只替换实体 /// </summary> /// <param name="station"></param> /// <returns></returns> public async Task <bool> UpdateOrAddStation(TStation station) { var nd = NdList.Find(n => n.OrgiData.ID == station.ID); if (nd == null) { var ndMap = nodemap.Find(n => n.objId == nd.OrgiData.ID); if (ndMap == null) { return(false); } nd = new SuperBStation(station, ndMap.nodeIsid); try { await _db.tStation.AddAsync(nd.DbData); await _db.SaveChangesAsync(); NdList.Add(nd); } catch (Exception ex) { LogHelper.Error(ex); return(false); } } else { if (nd.Update(station)) { try { _db.tStation.Update(nd.DbData); await _db.SaveChangesAsync(); } catch (Exception ex) { LogHelper.Error(ex); return(false); } } } return(true); }
public async Task SynchronizeDb() { var db = _db; subplateformres = await db.subplateformres.ToListAsync(); var tStation = await db.tStation.ToListAsync(); nodemap = await db.nodemap.ToListAsync(); foreach (var st in tStation) { var ndMap = nodemap.Find(n => n.objId == st.objId); if (ndMap == null) { continue; } NdList.Add(new SuperBStation(new TStation() { ID = st.objId, Name = st.objName, Des = st.objDesc, Type = (EnumType)st.objTypeId, ParentID = st.parentId ?? 0, Latitude = st.latitude, Longitude = st.longitude }, ndMap.nodeIsid)); } var tDevice = await db.tDevice.ToListAsync(); foreach (var dev in tDevice) { var ndMap = NdList.Find(n => n.OrgiData.ID == dev.parentId); if (ndMap == null) { continue; } DevList.Add(new SuperBDevice(new TDevice() { ID = dev.objId, Name = dev.objName, Des = dev.objDesc, Type = (EnumType)dev.objTypeId, ParentID = dev.parentId ?? 0, BeginRunTime = dev.beginRunTime.HasValue ? SuperBTagBase.Transfer(dev.beginRunTime.Value) : SuperBTagBase.Transfer(DateTime.Now), DeviceType = (EnumDeviceType)dev.devTypeId, Productor = dev.productor, Version = dev.version, }, ndMap.NodeIsid)); } tagmap = await db.tagmap.ToListAsync(); devicemap = await db.devicemap.ToListAsync(); alarmmap = await db.alarmmap.ToListAsync(); var taic = await db.taic.ToListAsync(); foreach (var aic in taic) { var devMap = DevList.Find(n => n.OrgiData.ID == aic.parentId); var tagMap = tagmap.Find(t => t.objId == aic.objId); if (devMap == null || tagMap == null) { continue; } TagList.Add(new SuperB_Taic(new TAIC() { ID = aic.objId, Name = aic.objName, Des = aic.objDesc, Type = (EnumType)aic.objTypeId, ParentID = aic.parentId ?? 0, AlarmEnable = (EnumEnable)aic.alarmEnable, AlarmLevel = (EnumAlarmLevel)aic.alarmLevel, HiLimit1 = aic.hiLimit1, HiLimit2 = aic.hiLimit2, HiLimit3 = aic.hiLimit3, LoLimit1 = aic.loLimit1, LoLimit2 = aic.loLimit2, LoLimit3 = aic.loLimit3, }, tagMap.tagIsid, alarmmap.ToArray())); } var taoc = await db.taoc.ToListAsync(); foreach (var aic in taoc) { var devMap = DevList.Find(n => n.OrgiData.ID == aic.parentId); var tagMap = tagmap.Find(t => t.objId == aic.objId); if (devMap == null || tagMap == null) { continue; } TagList.Add(new SuperB_Taoc(new TAOC() { ID = aic.objId, Name = aic.objName, Des = aic.objDesc, Type = (EnumType)aic.objTypeId, ParentID = aic.parentId ?? 0, ControlEnable = (EnumEnable)aic.controlEnable, MaxVal = aic.maxVal, MinVal = aic.minVal, Percision = aic.percision, Saved = (EnumEnable)aic.saved, Stander = aic.stander, Unit = aic.unit, }, tagMap.tagIsid, alarmmap.ToArray())); } var tdic = await db.tdic.ToListAsync(); foreach (var aic in tdic) { var devMap = DevList.Find(n => n.OrgiData.ID == aic.parentId); var tagMap = tagmap.Find(t => t.objId == aic.objId); if (devMap == null || tagMap == null) { continue; } TagList.Add(new SuperB_Tdic(new TDIC() { ID = aic.objId, Name = aic.objName, Des = aic.objDesc, Type = (EnumType)aic.objTypeId, ParentID = aic.parentId ?? 0, Saved = (EnumEnable)aic.saved, AlarmEnable = (EnumEnable)aic.alarmEnable, AlarmLevel = (EnumAlarmLevel)aic.alarmLevel, AlarmThresbhold = (EnumEnable)aic.alarmThresbhold, Desc0 = aic.desc0, Desc1 = aic.desc1, }, tagMap.tagIsid, alarmmap.ToArray())); } var tdoc = await db.tdoc.ToListAsync(); foreach (var aic in tdoc) { var devMap = DevList.Find(n => n.OrgiData.ID == aic.parentId); var tagMap = tagmap.Find(t => t.objId == aic.objId); if (devMap == null || tagMap == null) { continue; } TagList.Add(new SuperB_Tdoc(new TDOC() { ID = aic.objId, Name = aic.objName, Des = aic.objDesc, Type = (EnumType)aic.objTypeId, ParentID = aic.parentId ?? 0, ControlEnable = (EnumEnable)aic.controlEnable, Saved = (EnumEnable)aic.saved, Desc0 = aic.desc0, Desc1 = aic.desc1, }, tagMap.tagIsid, alarmmap.ToArray())); } var tdsc = await db.tdsc.ToListAsync(); foreach (var aic in tdsc) { var devMap = DevList.Find(n => n.OrgiData.ID == aic.parentId); var tagMap = tagmap.Find(t => t.objId == aic.objId); if (devMap == null || tagMap == null) { continue; } TagList.Add(new SuperB_Tdsc(new TDSC() { ID = aic.objId, Name = aic.objName, Des = aic.objDesc, Type = (EnumType)aic.objTypeId, ParentID = aic.parentId ?? 0, Saved = (EnumEnable)aic.saved, AlarmEnable = (EnumEnable)aic.alarmEnable, }, tagMap.tagIsid, alarmmap.ToArray())); } }