Ejemplo n.º 1
0
        public object GetAllActiveConnections()
        {
            var user            = CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID);
            var loginEvents     = DbLoginEventsManager.GetLoginEvents(user.Tenant, user.ID);
            var listLoginEvents = loginEvents.ConvertAll(Convert);
            var loginEventId    = GetLoginEventIdFromCookie();

            if (loginEventId != 0)
            {
                var loginEvent = listLoginEvents.FirstOrDefault(x => x.Id == loginEventId);
                if (loginEvent != null)
                {
                    listLoginEvents.Remove(loginEvent);
                    listLoginEvents.Insert(0, loginEvent);
                }
            }
            else
            {
                if (listLoginEvents.Count == 0)
                {
                    var request           = HttpContext.Current.Request;
                    var uaHeader          = MessageSettings.GetUAHeader(request);
                    var clientInfo        = MessageSettings.GetClientInfo(uaHeader);
                    var platformAndDevice = MessageSettings.GetPlatformAndDevice(clientInfo);
                    var browser           = MessageSettings.GetBrowser(clientInfo);
                    var ip = MessageSettings.GetIP(request);

                    var baseEvent = new CustomEvent
                    {
                        Id       = 0,
                        Platform = platformAndDevice,
                        Browser  = browser,
                        Date     = DateTime.Now,
                        IP       = ip
                    };

                    listLoginEvents.Add(Convert(baseEvent));
                }
            }

            var result = new
            {
                Items      = listLoginEvents,
                LoginEvent = loginEventId
            };

            return(result);
        }