예제 #1
0
        protected void apList_ItemCreated(object sender, RepeaterItemEventArgs e)
        {
            APStatusView ap = e.Item.DataItem as APStatusView;

            if (ap != null)
            {
                Anchor apName = (Anchor)e.Item.FindControl("apName");
                apName.Text = ap.APName;
                //apName.Href = "../Objects/AP.aspx?id=" + ap.APId;

                ((SmartLabel)e.Item.FindControl("apMac")).Text   = ap.Mac;
                ((SmartLabel)e.Item.FindControl("apSsid")).Text  = ap.Ssid;
                ((SmartLabel)e.Item.FindControl("apLanIP")).Text = ap.LanIP;

                ((SmartLabel)e.Item.FindControl("apLocateEnabled")).Text = ap.APLocatorStatus == 0 ? "失败" : (ap.APLocatorStatus == 1 ? "正常" : (ap.APLocatorStatus == 2 ? "运行" : "停止"));

                ((DateTimeLabel)e.Item.FindControl("updateTime")).DisplayValue = ap.UpdateTime;
            }
        }
        public static string ChangeTag(int oldTagId, int newTagId)
        {
            string newMac = "FAIL";

            if (oldTagId == newTagId)
            {
                return("");
            }
            HostTagGroupStatus hostTag = HostTagGroupStatus.SelectByTagId(oldTagId);

            if (LocatingServiceUtil.IsAvailable())
            {
                //TagUser user = TagUser.SelectByTagId(oldTagId);
                IServiceApi serviceApi = LocatingServiceUtil.Instance <IServiceApi>();
                newMac = serviceApi.ExchangeTagMac(hostTag.HostId, oldTagId, newTagId);
                //无锡换地标
                if (Config.Settings.ProjectType == ProjectTypeEnum.WXFactory)
                {
                    Tag oldTag = Tag.Select(oldTagId);
                    Tag newTag = Tag.Select(newTagId);

                    //更新缓存

                    IDictionary <string, APStatusView> dicAPStatus = APStatusView.SelectFullAPStatusView();
                    IServiceApi serApi = LocatingServiceUtil.Instance <IServiceApi>();
                    serApi.ExchangePositionTag(oldTag.TagMac, newTag.TagMac);
                    //更新数据库
                    AP.ChangeMac(oldTag.TagMac, newTag.TagMac);
                }


                //自定将标签启动和停止定位
                TagLocateSetting.StopLocating(new int[] { oldTagId });
                if (Config.Settings.ProjectType != ProjectTypeEnum.WXFactory)
                {
                    if (newTagId > 0)
                    {
                        SetStartLocating(newTagId);
                    }
                    else
                    {
                        newMac = "未携带标签";
                    }
                    // Send a command to LocatingService.
                    LocatingServiceUtil.Instance <IServiceApi>().StartStopLocating();
                }
                //记录日志
                string calling = GetGroupName(hostTag.HostGroupId);
                if (newTagId > 0)
                {
                    Diary.Insert(ContextUser.Current.Id, newTagId, hostTag.HostId, "为" + calling + hostTag.HostName + "调换标签,新标签MAC: " + newMac + "。");
                }
                else
                {
                    Diary.Insert(ContextUser.Current.Id, newTagId, hostTag.HostId, "为" + calling + hostTag.HostName + "解除绑定标签,原标签MAC: " + hostTag.TagMac + "。");
                }
                //SecurityLog.Insert(newTagId, hostTag.HostId, "为" + calling + hostTag.HostName + "调换标签,新标签MAC: " + newMac + "。", Priority.High);
            }

            /*else
             * {
             *  HostTag.ChangeHostTagBinding(hostTag.HostId, newTagId);
             *  Tag oTag = Tag.Select(newTagId);
             *  newMac = oTag.TagMac;
             *  //自定将标签启动和停止定位
             *  TagLocateSetting.StopLocating(new int[] { oldTagId });
             *  SetStartLocating(newTagId);
             *
             *  //记录日志
             *  string calling = GetGroupName(hostTag.HostGroupId);
             *  SecurityLog.Insert(hostTag.TagId, hostTag.HostId, "为" + calling + hostTag.HostName + "调换标签,新标签MAC: " + newMac + "。", Priority.High);
             * }*/

            //AlertProcessLog.DeleteAlertProcessLog(hostTag.HostId);
            //TagAlert.DeleteTagAlerts(hostTag.HostId);

            return(newMac);
        }