public void MapRefreshLightInfo(LightInfo light, LightInfoLightGroupInfo newLightInfoGroupInfo, LightInfoLightGroupInfo backLightInfoGroupInfo) { // 更新地图,如果存在 GMapMarker g; if (appState.MapDatas.DicLightInfoMarker.TryGetValue(light.GUID, out g)) { g.Position = new PointLatLng(light.Lat, light.Lng); //((CustomMarkerLightInfo)g.Shape).Title = light.Name; } // 更新左侧树形 if (newLightInfoGroupInfo != backLightInfoGroupInfo) { // 移除旧的分组 TreeHostInfo thi = null; TreeLightGroupInfo tlgi = null; TreeLightInfo tli = null; foreach (TreeGroupInfo t in appState.TreeDatas.TreeGroupInfos) { thi = t.TreeHostInfos.FirstOrDefault(a => a.HostInfo.GUID == light.HostGUID); if (thi != null) { break; } } if (backLightInfoGroupInfo != null) { if (thi != null) { tlgi = thi.TreeLightGroupInfos.FirstOrDefault(a => a.LightGroupInfo.GUID != "" && a.LightGroupInfo.GUID.Trim() == backLightInfoGroupInfo.LightGroupInfoGUID.Trim()); if (tlgi != null) { tli = tlgi.TreeLightInfos.FirstOrDefault(a => a.LightInfo.GUID.Trim() == light.GUID.Trim()); if (tli != null) { tlgi.TreeLightInfos.Remove(tli); } } } } // 增加新的分组 if (thi != null) { tlgi = thi.TreeLightGroupInfos.FirstOrDefault(a => a.LightGroupInfo.GUID.Trim() == newLightInfoGroupInfo.LightGroupInfoGUID.Trim()); if (tlgi != null) { tlgi.TreeLightInfos.Add(new TreeLightInfo() { LightInfo = light }); } } } }
/// <summary> /// 增加单灯与分组的真正关系 /// </summary> /// <param name="l"></param> /// <param name="t"></param> public void UIAddLightInfoLightGroupInfo(LightInfo l, TreeLightGroupInfo t) { // 更新左侧列表 if (t != null) { t.TreeLightInfos.Add(new TreeLightInfo() { LightInfo = l }); } }
public LightInfoAddDlg(MainWindow main, string title, TreeHostInfo thi) : this() { mainWindow = main; this.Title = title; hostInfo = thi.HostInfo; treeHostInfo = thi; treeLightGroupInfo = thi.TreeLightGroupInfos.FirstOrDefault(t => t.LightGroupInfo.GUID == ""); // 增加分组信息 List <LightGroupInfo> listLGI = new LightGroupInfoBLL().GetAllLightGroupInfoByHostGUID(hostInfo.GUID); combLightGroupInfo.ItemsSource = listLGI; combLightGroupInfo.DisplayMemberPath = "Name"; if (combLightGroupInfo.Items.Count > 0) { combLightGroupInfo.SelectedIndex = 0; } }
/// <summary> /// 增加单灯,更新左侧列表的全部组,增加地图标记,增加全局缓冲单灯 /// </summary> /// <param name="l"></param> public void UIAddLightInfo(LightInfo l, TreeLightGroupInfo t) { // 更新左侧列表 if (t != null) { t.TreeLightInfos.Add(new TreeLightInfo() { LightInfo = l }); } // 增加地图标记 GMapMarker g = MapAddLightInfo(l, map); if (g != null) { appState.MapDatas.DicLightInfoMarker.Add(l.GUID, g); } // 增加全局缓冲区 appState.TreeDatas.ListLightInfo.Add(l); }
private void lbMILightGroupInfoEdit_Click(object sender, RoutedEventArgs e) { TreeLightGroupInfo tlgi = (TreeLightGroupInfo)tvHostLightInfo.SelectedItem; LightGroupInfo lgi = new LightGroupInfo(); lgi.Name = tlgi.LightGroupInfo.Name; lgi.ID = tlgi.LightGroupInfo.ID; LightGroupInfoEditDlg gie = new LightGroupInfoEditDlg("修改单灯分组 - " + tlgi.LightGroupInfo.Name, lgi); if (gie.ShowDialog() == true) { tlgi.LightGroupInfo.Name = gie.LightGroupInfo.Name; tlgi.LightGroupInfo.ID = gie.LightGroupInfo.ID; tlgi.LightGroupInfo.UpdateTime = DateTime.Now; if (new AdminBLL.LightGroupInfoBLL().Update(tlgi.LightGroupInfo)) { } else { ModernDialog.ShowMessage("加入数据库失败!", "提示", MessageBoxButton.OK); } } }
/// <summary> /// 获取树形相关的数据 /// </summary> /// <param name="prjGUID"></param> /// <returns></returns> public TreeData GetTreeData(string prjGUID) { td = new TreeData(); BLL.tLightGroupInfoes lgiBLL = new BLL.tLightGroupInfoes(); BLL.tLightInfoLightGroupInfoes lilgiBLL = new BLL.tLightInfoLightGroupInfoes(); BLL.tLightInfoes liBLL = new BLL.tLightInfoes(); // 组信息 List <Model.tGroupInfoes> listGI = new BLL.tGroupInfoes().GetModelListByPrjGUID(prjGUID); // 主机信息 List <Model.tHostInfo> listHI = new BLL.tHostInfo().GetModelListByPrjGUID(prjGUID); // 增加未分组的主机 if (listGI == null) { listGI = new List <Model.tGroupInfoes>(); } if ((listHI.Count(t => t.sGroupInfoGUID.Trim() == "") > 0)) { listGI.Add(new Model.tGroupInfoes() { sName = "未分组", sGUID = "" }); } // 加入地图数据 foreach (Model.tHostInfo mapHI in listHI) { td.ListHostInfo.Add(new HostInfo(mapHI)); List <Model.tLightInfoes> mapListLI = liBLL.GetModelListByHostGUID(mapHI.sGUID); foreach (Model.tLightInfoes mapLI in mapListLI) { td.ListLightInfo.Add(new LightInfo(mapLI, mapHI.sID_Addr)); } } foreach (Model.tGroupInfoes gi in listGI) { // 树形数据 TreeGroupInfo ftgi = new TreeGroupInfo(); ftgi.GroupInfo = new GroupInfo(gi); List <Model.tHostInfo> flthi = listHI.Where(t => t.sGroupInfoGUID.Trim() == gi.sGUID).ToList(); if (gi.sGUID == "" && flthi.Count == 0) { continue; } foreach (Model.tHostInfo hi in flthi) { TreeHostInfo ffthi = new TreeHostInfo(); ffthi.HostInfo = td.ListHostInfo.FirstOrDefault(v => v.GUID.Trim() == hi.sGUID.Trim());//new HostInfo(hi); List <Model.tLightGroupInfoes> ffltlgi = lgiBLL.GetModelListByHostGUID(hi.sGUID); //List<Model.tLightInfoes> ffltli = liBLL.GetModelListByHostGUID(hi.sGUID); List <LightInfo> ffltli = td.ListLightInfo.Where(c => c.HostGUID == hi.sGUID).ToList(); { // 增加所有单灯信息 // if (ffltli != null && ffltli.Count > 0) { if (ffltlgi == null) { ffltlgi = new List <Model.tLightGroupInfoes>(); } ffltlgi.Add(new Model.tLightGroupInfoes() { sGUID = "", sName = "全部" }); } } foreach (Model.tLightGroupInfoes lgi in ffltlgi) { if (lgi.sGUID == "" && ffltli != null) { TreeLightGroupInfo tfftlgi = new TreeLightGroupInfo(); tfftlgi.LightGroupInfo = new LightGroupInfo(lgi); foreach (LightInfo t in ffltli) { TreeLightInfo tmtli = new TreeLightInfo(); t.RoadID = hi.sID_Addr; tmtli.LightInfo = t; tfftlgi.TreeLightInfos.Add(tmtli); } ffthi.TreeLightGroupInfos.Add(tfftlgi); continue; } List <Model.tLightInfoLightGroupInfoes> fftlilgi = lilgiBLL.GetModelListByLightGroupGUID(lgi.sGUID); TreeLightGroupInfo fftlgi = new TreeLightGroupInfo(); fftlgi.LightGroupInfo = new LightGroupInfo(lgi); foreach (Model.tLightInfoLightGroupInfoes tlilgi in fftlilgi) { LightInfo tli = ffltli.FirstOrDefault(t => t.GUID == tlilgi.sLightInfoGUID); if (tli != null) { TreeLightInfo mtli = new TreeLightInfo(); tli.RoadID = hi.sID_Addr; mtli.LightInfo = tli; fftlgi.TreeLightInfos.Add(mtli); } } ffthi.TreeLightGroupInfos.Add(fftlgi); } ftgi.TreeHostInfos.Add(ffthi); } // 增加树形 td.TreeGroupInfos.Add(ftgi); } return(td); }
void OkButton_Click(object sender, RoutedEventArgs e) { int startID, endID, tempID; double startLat, endLat, startLng, endLng, tempLat, tempLng; try { startID = int.Parse(txtStartID.Text.Trim()); endID = int.Parse(txtEndID.Text.Trim()); startLat = double.Parse(txtStartLightLat.Text.Trim()); startLng = double.Parse(txtStartLightLng.Text.Trim()); endLat = double.Parse(txtEndLightLat.Text.Trim()); endLng = double.Parse(txtEndLightLng.Text.Trim()); tempID = endID - startID + 1; tempLat = (endLat - startLat) / tempID; tempLng = (endLng - startLng) / tempID; } catch { ModernDialog.ShowMessage("起始结束地址错误!", "提示", MessageBoxButton.OK); return; } if (startID > endID) { ModernDialog.ShowMessage("起始地址不能大于结束地址!", "提示", MessageBoxButton.OK); return; } LightInfo lightInfo; LightInfoBLL liBLL = new LightInfoBLL(); LightInfoLightGroupInfoBLL lilgiBLL = new LightInfoLightGroupInfoBLL(); LightInfoLightGroupInfo lightInfoLightGroupInfo = null; if (combLightGroupInfo.SelectedItem != null) { lightInfoLightGroupInfo = new LightInfoLightGroupInfo(); lightInfoLightGroupInfo.LightGroupInfoGUID = ((LightGroupInfo)combLightGroupInfo.SelectedItem).GUID; treeLightGroupInfoTag = treeHostInfo.TreeLightGroupInfos.FirstOrDefault(a => a.LightGroupInfo.GUID == lightInfoLightGroupInfo.LightGroupInfoGUID); } DateTime dtNow = DateTime.Now; for (int i = 0; i < tempID; i++) { try { // 增加节点 lightInfo = new LightInfo(hostInfo.Addr); lightInfo.HostGUID = hostInfo.GUID; lightInfo.GUID = Guid.NewGuid().ToString(); lightInfo.ID = (startID + i).ToString("D03"); lightInfo.Lat = startLat + tempLat * i; lightInfo.Lng = startLng + tempLng * i; lightInfo.Name = lightInfo.ID; lightInfo.PhyID = lightInfo.ID; lightInfo.Version = txtLightVersion.Text.Trim(); lightInfo.Type = (int)(((Admin.Pages.Device.LightInfoEditDlg.LightTypeItem)cbLightType.SelectedItem).Value); // 1 太阳能 lightInfo.Enable = 1; // 使能 lightInfo.Remark = ""; lightInfo.CreateTime = dtNow; lightInfo.UpdateTime = dtNow; liBLL.Add(lightInfo); if (mainWindow != null) { mainWindow.UIAddLightInfo(lightInfo, treeLightGroupInfo); } // 增加节点关系 if (lightInfoLightGroupInfo != null) { lightInfoLightGroupInfo.GUID = Guid.NewGuid().ToString(); lightInfoLightGroupInfo.CreateTime = dtNow; lightInfoLightGroupInfo.UpdateTime = dtNow; lightInfoLightGroupInfo.LightInfoGUID = lightInfo.GUID; lilgiBLL.Add(lightInfoLightGroupInfo); if (mainWindow != null && treeLightGroupInfoTag != null) { mainWindow.UIAddLightInfoLightGroupInfo(lightInfo, treeLightGroupInfoTag); } } } catch { } } Close(); }