public async Task <PermissionScope.SearchResult> SearchAsync(PermissionScope.SearchModel model, CancellationToken cancellationToken = default) { var cacheKey = _cacheHelper.CreateKey <PermissionScope.SearchModel, PermissionScope.SearchResult>(model); if (TryGetFromCache(cacheKey, out PermissionScope.SearchResult result)) { return(result); } using var process = GetProcess <ISearchPermissionScope>(); process.Model = model; return(TrySaveToCache(cacheKey, await process.ExecuteAsync(cancellationToken), _configuration.CacheExpiration.PermissionScope.Search)); }
public async Task ExecuteAsync(PermissionScope.SearchModel model, PermissionScope.SearchResult result, SqlConnection connection, CancellationToken cancellationToken = default) { using var command = Get(model, connection); using var reader = await command.ExecuteReaderAsync(cancellationToken); if (reader.HasRows) { while (await reader.ReadAsync(cancellationToken)) { result.Scopes.Add(_readerConverter.Convert(reader)); } } result.TotalCount = await ReadTotalCountAsync(reader, cancellationToken); }
public Task <PermissionScope.SearchResult> SearchAsync(PermissionScope.SearchModel model, CancellationToken cancellationToken = default) { using var process = GetProcess <ISearchPermissionScope>(); process.Model = model; return(process.ExecuteAsync(cancellationToken)); }
private SqlCommand Get(PermissionScope.SearchModel model, SqlConnection connection) => connection.CreateProcedureCommand(PROCEDURE) .AddPaginationParameters(model) .AddInParameter(PARAM_FILTERTEXT, model.FilterText) .AddIntListParameter(PARAM_SKIPPEDIDS, model.SkippedIds);