-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathQueryBuilderFactory.cs
More file actions
27 lines (23 loc) · 1021 Bytes
/
QueryBuilderFactory.cs
File metadata and controls
27 lines (23 loc) · 1021 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using FizzCode.DbTools.Factory.Interfaces;
using FizzCode.DbTools.QueryBuilder.Interfaces;
namespace FizzCode.DbTools.QueryBuilder;
public class QueryBuilderFactory : IQueryBuilderFactory
{
protected IContextFactory ContextFactory { get; }
protected ISqlGeneratorBaseFactory SqlGeneratorBaseFactory { get; }
public QueryBuilderFactory(IContextFactory contextFactory, ISqlGeneratorBaseFactory sqlGeneratorBaseFactory)
{
ContextFactory = contextFactory;
SqlGeneratorBaseFactory = sqlGeneratorBaseFactory;
}
public IQueryBuilderConnector CreateQueryBuilderConnector(SqlEngineVersion version)
{
var context = ContextFactory.CreateContext(version);
return new QueryBuilderConnector(context, CreateQueryBuilder(version));
}
public IQueryBuilder CreateQueryBuilder(SqlEngineVersion version)
{
var sqlGeneratorBase = SqlGeneratorBaseFactory.CreateGenerator(version);
return new QueryBuilderSqlGeneratorBase(sqlGeneratorBase);
}
}