private void UpdateAuditSession()
        {
            if (_user != null)
            {
                if (Audit == null)
                {
                    var requestInfo = HttpContext.Current.Request;
                    var audit       = new SessionAudit
                    {
                        Agent            = _user,
                        Start            = DateTime.Now,
                        Browser          = $"{requestInfo.Browser.Browser} {requestInfo.Browser.Version}",
                        IPAddress        = HttpRequestHelper.GetIP(requestInfo),
                        OperatingSystem  = HttpRequestHelper.GetUserPlatform(requestInfo),
                        ScreenResolution = requestInfo.Headers["Screen-Resolution"]
                    };

                    Audit = audit;
                }

                if ((Audit.Finish == null) || Audit.Finish.Value < DateTime.Now)
                {
                    Audit.Finish = (NullableDateTime)DateTime.Now.AddMinutes(30);
                    DataService.UpdateObject(Audit);
                }
            }
        }
        public async Task RefreshSessionAudit(JetWalletToken prevToken, JetWalletToken newToken, string userAgent, string ip)
        {
            await using var ctx = _databaseContextFactory.Create();

            var entity = new SessionAudit()
            {
                SessionRootId = newToken.SessionRootId,
                SessionId     = newToken.SessionRootId,
                BaseSessionId = prevToken.SessionId,
                BrokerId      = newToken.BrokerId,
                BrandId       = newToken.BrandId,
                ClientId      = newToken.ClientId(),
                WalletId      = newToken.WalletId,
                CreateTime    = DateTime.UtcNow,
                Expires       = newToken.Expires,
                UserAgent     = userAgent,
                Ip            = ip
            };

            await ctx.UpsetAsync(entity);
        }
Example #3
0
        public async Task <int> UpsetAsync(SessionAudit entity)
        {
            var result = await Sessions.Upsert(entity).On(e => e.SessionId).NoUpdate().RunAsync();

            return(result);
        }