/// <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; }
void CheckExpire(Object state) { var timeout = Setting.Current.SessionTimeout; //if (Svr != null) Svr.ClearExpire(timeout); DeviceOnline.ClearExpire(timeout); UserOnline.ClearExpire(timeout); }
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; } }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
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; }
/// <summary>清理超时会话</summary> /// <param name="secTimeout"></param> /// <returns></returns> public override Int32 ClearExpire(Int32 secTimeout) => DeviceOnline.ClearExpire(secTimeout).Count;
/// <summary>清理超时会话</summary> /// <param name="secTimeout"></param> /// <returns></returns> public Int32 ClearExpire(Int32 secTimeout) { return(DeviceOnline.ClearExpire(secTimeout).Count); }
protected virtual DeviceOnline GetOnline(String mac) { var sid = $"{mac}@{Remote.EndPoint}"; return(DeviceOnline.FindBySessionID(sid)); }
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"); }