Пример #1
0
        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
                        });
                    }
                }
            }
        }
Пример #2
0
 /// <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
         });
     }
 }
Пример #3
0
        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;
            }
        }
Пример #4
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);
        }
Пример #5
0
        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);
                }
            }
        }
Пример #6
0
        /// <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);
        }
Пример #7
0
        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();
        }