private SqlCommand Get(User.SearchModel model, SqlConnection connection) => connection.CreateProcedureCommand(PROCEDURE) .AddPaginationParameters(model) .AddInParameter(PARAM_FILTERTEXT, model.FilterText) .AddInParameter(PARAM_ISACTIVE, model.IsActive) .AddInParameter(PARAM_ISPASSWORDCHANGEREQUIRED, model.IsPasswordChangeRequired) .AddIntListParameter(PARAM_SKIPPEDIDS, model.SkippedIds);
public async Task <User.SearchResult> SearchAsync(User.SearchModel model, CancellationToken cancellationToken = default) { var cacheKey = _cacheHelper.CreateKey <User.SearchModel, User.SearchResult>(model); if (TryGetFromCache(cacheKey, out User.SearchResult result)) { return(result); } using var process = GetProcess <ISearchUser>(); process.Model = model; return(TrySaveToCache(cacheKey, await process.ExecuteAsync(cancellationToken), _configuration.CacheExpiration.User.Search)); }
public async Task ExecuteAsync(User.SearchModel model, User.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.Users.Add(_readerConverter.Convert(reader)); } } result.TotalCount = await ReadTotalCountAsync(reader, cancellationToken); }
public Task <User.SearchResult> SearchAsync(User.SearchModel model, CancellationToken cancellationToken = default) { using var process = GetProcess <ISearchUser>(); process.Model = model; return(process.ExecuteAsync(cancellationToken)); }