public class GetCustomerById : FlexiQueryBridge<Customer, GetCustomerByIdOutputAPIModel>
private IFlexQueryRepositoryBridge _repoFlex;
readonly ILogger<GetCustomerById> _logger;
private GetCustomerByIdParams _params;
IReadDbConnectionProviderBridge _connectionProvider;
/// <param name="repoFlex"></param>
/// <param name="logger"></param>
public GetCustomerById(IFlexQueryRepositoryBridge repoFlex, ILogger<GetCustomerById> logger, IMapper mapper, IReadDbConnectionProviderBridge connectionProvider)
_connectionProvider = connectionProvider;
/// <param name="id"></param>
public GetCustomerById AssignParameters(GetCustomerByIdParams @params)
public override GetCustomerByIdOutputAPIModel Fetch()
var stopwatch = Stopwatch.StartNew();
var result = Build<Customer>().ProjectTo<GetCustomerByIdOutputAPIModel>(_mapper.ConfigurationProvider).FirstOrDefault();
Trace.WriteLine(quot;Query GetCustomerById 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>().Where(t => t.Id == _params.Id);
public class GetCustomerByIdParams : FlexiQueryParameterBridge
public string Id { get; set; }