public async Task <bool> IncreaseView(int id, bool isAuthorize, CancellationToken cancellationToken) { int?userId = null; if (isAuthorize) { userId = HttpContext.User.Identity.GetUserId <int>(); } var ip = _accessor.HttpContext?.Connection?.RemoteIpAddress?.ToString(); var lastView = await _repositoryView.TableNoTracking .Where(a => !a.VersionStatus.Equals(2) && a.PostId.Equals(id) && a.Ip.Equals(ip)) .OrderByDescending(a => a.Time) .Select(a => a.Time) .FirstOrDefaultAsync(cancellationToken); if (lastView != DateTimeOffset.MinValue && !_security.TimeCheck(lastView)) { return(false); } return(await _viewRepository.IncreaseView(userId, ip, id, cancellationToken)); }