示例#1
0
        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));
        }
示例#2
0
        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));
 }
示例#4
0
 private SqlCommand Get(PermissionScope.SearchModel model, SqlConnection connection) =>
 connection.CreateProcedureCommand(PROCEDURE)
 .AddPaginationParameters(model)
 .AddInParameter(PARAM_FILTERTEXT, model.FilterText)
 .AddIntListParameter(PARAM_SKIPPEDIDS, model.SkippedIds);