public void UpdateLastVisitActivity(int activityStreamId) { if (this.services.WorkContext.CurrentUser == null) { throw new OrchardSecurityException(T("You don't have authorization to run the query")); } int userId = this.services.WorkContext.CurrentUser.Id; var userVisitRecord = userContentVisitRepository.Table.FirstOrDefault(c => c.User.Id == userId); if (userVisitRecord == null) { userVisitRecord = new UserContentVisitRecord { User = new UserPartRecord() { Id = userId }, LastVisitedActivityStreamId = activityStreamId, LastVisitTime = DateTime.UtcNow }; this.userContentVisitRepository.Create(userVisitRecord); this.userContentVisitRepository.Flush(); } else { userVisitRecord.LastVisitedActivityStreamId = activityStreamId; userVisitRecord.LastVisitTime = DateTime.UtcNow; this.userContentVisitRepository.Flush(); } }
private IHqlQuery[] GetQueries(out int lastActivityId) { int userId = this.services.WorkContext.CurrentUser.Id; var userVisitRecord = userContentVisitRepository.Table.FirstOrDefault(c => c.User.Id == userId); var contentQuery = this.services.ContentManager.HqlQuery(); contentQuery = this.ApplyContentPermissionFilter(contentQuery); if (userVisitRecord == null) { var lastActivities = this.activityStreamService.ActivityStreamRestrictedByGivenQuery(new[] { contentQuery }, 0, 1).ToList(); if (lastActivities.Count > 0) { userVisitRecord = new UserContentVisitRecord { User = new UserPartRecord() { Id = userId }, LastVisitedActivityStreamId = lastActivities[0].Id, LastVisitTime = DateTime.UtcNow }; this.userContentVisitRepository.Create(userVisitRecord); this.userContentVisitRepository.Flush(); } lastActivityId = 0; } else { lastActivityId = userVisitRecord.LastVisitedActivityStreamId; } return(new[] { contentQuery }); }