Пример #1
0
        /// <summary>更新在线信息,登录前、心跳时 调用</summary>
        /// <param name="name"></param>
        /// <param name="ps">附加参数</param>
        protected virtual void CheckOnline(String name, IDictionary <String, Object> ps)
        {
            var ns  = Session as NetSession;
            var sid = ns.Remote.EndPoint + "";

            var olt = (Online ?? CreateOnline(sid)) as DeviceOnline;

            if (Current is Device dv)
            {
                olt.DeviceId  = dv.ID;
                olt.ProductId = dv.ProductId;
                olt.Name      = dv.Name;

                olt.Version = dv.Version;
                olt.MACs    = dv.MACs;
                olt.COMs    = dv.COMs;

                olt.CreateIP = ns.Remote.Address + "";
            }

            Fill(olt, ps);

            olt.PingCount++;

            Online = olt;
        }
Пример #2
0
        void CheckExpire(Object state)
        {
            var timeout = Setting.Current.SessionTimeout;

            //if (Svr != null) Svr.ClearExpire(timeout);
            DeviceOnline.ClearExpire(timeout);
            UserOnline.ClearExpire(timeout);
        }
Пример #3
0
        private void Fill(DeviceOnline olt, IDictionary <String, Object> ps)
        {
            var m = ps["AvailableMemory"].ToLong();

            if (m > 0)
            {
                olt.AvailableMemory = (Int32)(m / 1024 / 1024);
            }

            var d = ps["CpuRate"].ToDouble();

            if (d > 0)
            {
                olt.CpuRate = d;
            }

            var n = ps["Delay"].ToInt();

            if (n > 0)
            {
                olt.Delay = n;
            }

            var dt = ps["Time"].ToDateTime();

            if (dt.Year > 2000)
            {
                olt.LocalTime = dt;
                olt.Offset    = (Int32)Math.Round((dt - DateTime.Now).TotalSeconds);
            }

            var str = ps["Processes"] + "";

            if (!str.IsNullOrEmpty())
            {
                olt.Processes = str;
            }

            str = ps["MACs"] + "";
            if (!str.IsNullOrEmpty())
            {
                olt.MACs = str;
            }

            str = ps["COMs"] + "";
            if (!str.IsNullOrEmpty())
            {
                olt.COMs = str;
            }

            str = ps["LocalIP"] + "";
            if (!str.IsNullOrEmpty())
            {
                olt.InternalUri = str;
            }
        }
Пример #4
0
        /// <summary>创建在线</summary>
        /// <param name="sessionid"></param>
        /// <returns></returns>
        protected override IOnline CreateOnline(String sessionid)
        {
            var ns = Session as NetSession;

            var olt = DeviceOnline.FindBySessionID(sessionid) ?? new DeviceOnline();

            olt.Version     = Version;
            olt.ExternalUri = ns.Remote + "";

            return(olt);
        }
Пример #5
0
        /// <summary>创建在线</summary>
        /// <param name="sessionid"></param>
        /// <returns></returns>
        protected virtual DeviceOnline CreateOnline(String sessionid)
        {
            var ns  = Session as NetSession;
            var sid = ns.Remote.EndPoint + "";

            var olt = DeviceOnline.GetOrAdd(sid);

            olt.CreateIP = ns.Remote + "";

            olt.SaveAsync();

            return(olt);
        }
Пример #6
0
        /// <summary>创建在线</summary>
        /// <param name="sessionid"></param>
        /// <returns></returns>
        protected override IOnline CreateOnline(String sessionid)
        {
            var ns  = Session as NetSession;
            var sid = ns.Remote.EndPoint + "";

            var olt = DeviceOnline.GetOrAdd(sid);

            olt.ExternalUri = ns.Remote + "";

            olt.SaveAsync();

            return(olt);
        }
Пример #7
0
        /// <summary>检查在线</summary>
        /// <returns></returns>
        protected virtual DeviceOnline CreateOnline(String mac, IDevice dv)
        {
            var sid = $"{mac}@{Remote.EndPoint}";
            //var olt = new DeviceOnline
            //{
            //    SessionID = sid,
            //    DeviceID = dv.ID,
            //    Name = dv + "",
            //    Kind = dv.Kind,
            //};
            var olt = DeviceOnline.GetOrAdd(sid);

            olt.DeviceID = dv.ID;
            olt.Name     = dv + "";
            olt.Kind     = dv.Kind;

            //olt.Insert();
            olt.SaveAsync();

            return(olt);
        }
Пример #8
0
        /// <summary>检查在线</summary>
        /// <returns></returns>
        protected virtual DeviceOnline CheckOnline()
        {
            var olt = Online;

            if (olt != null)
            {
                return(olt);
            }

            var uri = Remote.EndPoint + "";

            olt = DeviceOnline.FindBySessionID(uri);
            if (olt == null)
            {
                olt = new DeviceOnline
                {
                    SessionID = uri,
                };

                olt.Insert();
            }

            var dv = Device;

            if (dv != null)
            {
                olt.Name     = dv + "";
                olt.DeviceID = dv.ID;
            }

            olt.InternalUri = dv.LocalIP;
            olt.ExternalUri = Remote + "";

            olt.SaveAsync();

            Online = olt;

            return(olt);
        }
Пример #9
0
        void IActionFilter.OnActionExecuting(ControllerContext filterContext)
        {
            Parameters = filterContext.Parameters;

            var act = filterContext.ActionName;

            if (act == nameof(Login) || act.EndsWith("/" + nameof(Login)))
            {
                return;
            }

            var ns = Session as INetSession;

            if (Session["Current"] is Device user)
            {
                Current = user;
            }
            else
            {
                throw new ApiException(401, "{0}未登录!不能执行{1}".F(ns.Remote, act));
            }

            Online = Session["Online"] as DeviceOnline;
        }
Пример #10
0
 /// <summary>清理超时会话</summary>
 /// <param name="secTimeout"></param>
 /// <returns></returns>
 public override Int32 ClearExpire(Int32 secTimeout) => DeviceOnline.ClearExpire(secTimeout).Count;
Пример #11
0
 /// <summary>清理超时会话</summary>
 /// <param name="secTimeout"></param>
 /// <returns></returns>
 public Int32 ClearExpire(Int32 secTimeout)
 {
     return(DeviceOnline.ClearExpire(secTimeout).Count);
 }
Пример #12
0
        protected virtual DeviceOnline GetOnline(String mac)
        {
            var sid = $"{mac}@{Remote.EndPoint}";

            return(DeviceOnline.FindBySessionID(sid));
        }
Пример #13
0
        public override void Execute()
        {
            #line 5 "..\..\Areas\Device\Views\DeviceOnline\_List_Toolbar.cshtml"

            var fact = ViewBag.Factory as IEntityOperate;
            var page = ViewBag.Page as Pager;


            #line default
            #line hidden
            WriteLiteral("\n<div");

            WriteLiteral(" class=\"tableTools-container list-toolbar\"");

            WriteLiteral(">\n    <div");

            WriteLiteral(" class=\"form-inline clear-fix\"");

            WriteLiteral(">\n        <form");

            WriteAttribute("action", Tuple.Create(" action=\"", 265), Tuple.Create("\"", 345)

            #line 11 "..\..\Areas\Device\Views\DeviceOnline\_List_Toolbar.cshtml"
                           , Tuple.Create(Tuple.Create("", 274), Tuple.Create <System.Object, System.Int32>(Url.Action("index")

            #line default
            #line hidden
                                                                                                            , 274), false)

            #line 11 "..\..\Areas\Device\Views\DeviceOnline\_List_Toolbar.cshtml"
                           , Tuple.Create(Tuple.Create("", 294), Tuple.Create <System.Object, System.Int32>(Html.Raw("?" + page.GetBaseUrl(false, true, true))

            #line default
            #line hidden
                                                                                                            , 294), false)
                           );

            WriteLiteral(" method=\"post\"");

            WriteLiteral(" role=\"form\"");

            WriteLiteral(">\n            <div");

            WriteLiteral(" class=\"pull-right form-group\"");

            WriteLiteral(">\n                <div");

            WriteLiteral(" class=\"form-group\"");

            WriteLiteral(">\n                    <label");

            WriteLiteral(" for=\"kind\"");

            WriteLiteral(" class=\"control-label\"");

            WriteLiteral(">类型:</label>\n");

            WriteLiteral("                    ");


            #line 15 "..\..\Areas\Device\Views\DeviceOnline\_List_Toolbar.cshtml"
            Write(Html.ForDropDownList("Type", DeviceOnline.FindAllTypeName(), Request["Type"], "全部", true));


            #line default
            #line hidden
            WriteLiteral("\n                </div>\n                <div");

            WriteLiteral(" class=\"form-group\"");

            WriteLiteral(">\n                    <label");

            WriteLiteral(" for=\"dtStart\"");

            WriteLiteral(" class=\"control-label\"");

            WriteLiteral(">登录时间:</label>\n                    <div");

            WriteLiteral(" class=\"input-group\"");

            WriteLiteral(">\n                        <span");

            WriteLiteral(" class=\"input-group-addon\"");

            WriteLiteral("><i");

            WriteLiteral(" class=\"fa fa-calendar\"");

            WriteLiteral("></i></span>\n                        <input");

            WriteLiteral(" name=\"dtStart\"");

            WriteLiteral(" id=\"dtStart\"");

            WriteAttribute("value", Tuple.Create(" value=\"", 985), Tuple.Create("\"", 1012)

            #line 21 "..\..\Areas\Device\Views\DeviceOnline\_List_Toolbar.cshtml"
                           , Tuple.Create(Tuple.Create("", 993), Tuple.Create <System.Object, System.Int32>(Request["dtStart"]

            #line default
            #line hidden
                                                                                                            , 993), false)
                           );

            WriteLiteral(" dateformat=\"yyyy-MM-dd\"");

            WriteLiteral(" class=\"form-control form_datetime\"");

            WriteLiteral(" />\n                    </div>\n                </div>\n                <div");

            WriteLiteral(" class=\"form-group\"");

            WriteLiteral(">\n                    <label");

            WriteLiteral(" for=\"dtEnd\"");

            WriteLiteral(" class=\"control-label\"");

            WriteLiteral(">至</label>\n                    <div");

            WriteLiteral(" class=\"input-group\"");

            WriteLiteral(">\n                        <span");

            WriteLiteral(" class=\"input-group-addon\"");

            WriteLiteral("><i");

            WriteLiteral(" class=\"fa fa-calendar\"");

            WriteLiteral("></i></span>\n                        <input");

            WriteLiteral(" name=\"dtEnd\"");

            WriteLiteral(" id=\"dtEnd\"");

            WriteAttribute("value", Tuple.Create(" value=\"", 1432), Tuple.Create("\"", 1457)

            #line 28 "..\..\Areas\Device\Views\DeviceOnline\_List_Toolbar.cshtml"
                           , Tuple.Create(Tuple.Create("", 1440), Tuple.Create <System.Object, System.Int32>(Request["dtEnd"]

            #line default
            #line hidden
                                                                                                             , 1440), false)
                           );

            WriteLiteral(" dateformat=\"yyyy-MM-dd\"");

            WriteLiteral(" class=\"form-control form_datetime\"");

            WriteLiteral(" />\n                    </div>\n                </div>\n                <div");

            WriteLiteral(" class=\"input-group\"");

            WriteLiteral(">\n                    <span");

            WriteLiteral(" class=\"input-group-addon\"");

            WriteLiteral(">\n                        <i");

            WriteLiteral(" class=\"ace-icon fa fa-check\"");

            WriteLiteral("></i>\n                    </span>\n                    <input");

            WriteLiteral(" name=\"q\"");

            WriteLiteral(" type=\"search\"");

            WriteLiteral(" id=\"q\"");

            WriteAttribute("value", Tuple.Create(" value=\"", 1811), Tuple.Create("\"", 1832)

            #line 35 "..\..\Areas\Device\Views\DeviceOnline\_List_Toolbar.cshtml"
                           , Tuple.Create(Tuple.Create("", 1819), Tuple.Create <System.Object, System.Int32>(Request["q"]

            #line default
            #line hidden
                                                                                                             , 1819), false)
                           );

            WriteLiteral(" class=\"form-control\"");

            WriteLiteral(" placeholder=\"搜索\"");

            WriteLiteral(" />\n                    <span");

            WriteLiteral(" class=\"input-group-btn\"");

            WriteLiteral(">\n                        <button");

            WriteLiteral(" type=\"submit\"");

            WriteLiteral(" class=\"btn btn-purple btn-sm\"");

            WriteLiteral(">\n                            <span");

            WriteLiteral(" class=\"ace-icon fa fa-search icon-on-right bigger-110\"");

            WriteLiteral("></span>\n                            查询\n                        </button>\n       " +
                         "             </span>\n                </div>\n                <div");

            WriteLiteral(" class=\"input-group btn-toolbar\"");

            WriteLiteral(">\n");

            WriteLiteral("                    ");


            #line 44 "..\..\Areas\Device\Views\DeviceOnline\_List_Toolbar.cshtml"
            Write(Html.Partial("_List_Toolbar_Adv"));


            #line default
            #line hidden
            WriteLiteral("\n                </div>\n            </div>\n        </form>\n    </div>\n</div>\n");
        }