Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var result = await _dbContext.Assets
- .AsNoTracking()
- .Where(asset =>
- alertWorkflowsForAllCategories.Contains(asset.TenantId) &&
- asset.Tenant.TenantFeatures.WorkflowEnabled &&
- asset.Tenant.Type != TenantType.INACTIVE &&
- asset.Tag != null &&
- asset.Tag.TagCurrentState != null &&
- asset.AssetAssetTypes.Count != 0 &&
- (
- !asset.Tag.TagCurrentState.LastTimeSeen.HasValue ||
- allAssetCategoryWorkflowQuery.Any(workflow =>
- workflow.TenantId == asset.TenantId &&
- asset.Tag.TagCurrentState.LastTimeSeen <= timestampNow - workflow.ForwardEvery.Value * 1000 &&
- !workflow.WorkflowExecutions.Any(we => we.AssetId == asset.Id) || workflow.WorkflowExecutions.Any(we => we.AssetId == asset.Id && we.LastTimeTriggered <= (timestampNow - (workflow.ForwardEvery * 1000))))
- )
- )
- .Include(asset => asset.Tag)
- .ThenInclude(tag => tag.TagCurrentState)
- .Include(asset => asset.Tenant)
- .ThenInclude(t => t.TenantFeatures)
- .ToListAsync();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement