public class GetCustomersForLookup : FlexiQueryEnumerableBridge<Customer, GetCustomersForLookupOutputAPIModel>
private IFlexQueryRepositoryBridge _repoFlex;
readonly ILogger<GetCustomersForLookup> _logger;
readonly IReadDbConnectionProviderBridge _connectionProvider;
private GetCustomersForLookupParams _params;
/// <param name="repoFlex"></param>
/// <param name="logger"></param>
public GetCustomersForLookup(IFlexQueryRepositoryBridge repoFlex, ILogger<GetCustomersForLookup> logger, IMapper mapper, IReadDbConnectionProviderBridge connectionProvider)
_connectionProvider = connectionProvider;
/// <param name="params"></param>
public GetCustomersForLookup AssignParameters(GetCustomersForLookupParams @params)
public override IEnumerable<GetCustomersForLookupOutputAPIModel> Fetch()
var stopwatch = Stopwatch.StartNew();
var result = Build<Customer>().ProjectTo<GetCustomersForLookupOutputAPIModel>(_mapper.ConfigurationProvider).ToList();
Trace.WriteLine(quot;Query GetCustomersForLookup execution time: {stopwatch.ElapsedMilliseconds} ms");
/// <typeparam name="T"></typeparam>
protected override IQueryable<T> Build<T>()
_connectionProvider.ConfigureDbConnectionString(_params.GetHostContextInfo());
_repoFlex.InitializeConnection(_connectionProvider);
IQueryable<T> query = _repoFlex.FindAll<T>();
if (!String.IsNullOrEmpty(_params.Name))
query = query.Where(c => c.Name == _params.Name);
public class GetCustomersForLookupParams : FlexiQueryParameterBridge
public string Name { get; set; }