|
1 | 1 | using DbSyncKit.Templates.Interface; |
2 | | -using HandlebarsDotNet; |
| 2 | +using DotLiquid; |
3 | 3 |
|
4 | 4 | namespace DbSyncKit.Templates.MySql |
5 | 5 | { |
6 | 6 | public class QueryTemplates : IQueryTemplates |
7 | 7 | { |
8 | 8 | #region Public Properties |
9 | | - public HandlebarsTemplate<object, object> SELECT_QUERY => _selectQueryTemplate.Value; |
10 | | - public HandlebarsTemplate<object, object> INSERT_QUERY => _insertQueryTemplate.Value; |
11 | | - public HandlebarsTemplate<object, object> UPDATE_QUERY => _updateQueryTemplate.Value; |
12 | | - public HandlebarsTemplate<object, object> DELETE_QUERY => _deleteQueryTemplate.Value; |
13 | | - public HandlebarsTemplate<object, object> COMMENT_QUERY => _commentQueryTemplate.Value; |
| 9 | + public Template SELECT_QUERY => _selectQueryTemplate.Value; |
| 10 | + public Template INSERT_QUERY => _insertQueryTemplate.Value; |
| 11 | + public Template UPDATE_QUERY => _updateQueryTemplate.Value; |
| 12 | + public Template DELETE_QUERY => _deleteQueryTemplate.Value; |
| 13 | + public Template COMMENT_QUERY => _commentQueryTemplate.Value; |
14 | 14 |
|
15 | 15 | #endregion |
16 | 16 |
|
17 | 17 | #region Private Properties |
18 | 18 |
|
19 | | - private static Lazy<HandlebarsTemplate<object, object>> _selectQueryTemplate = new Lazy<HandlebarsTemplate<object, object>>(CreateSelectQueryTemplate); |
20 | | - private static Lazy<HandlebarsTemplate<object, object>> _insertQueryTemplate = new Lazy<HandlebarsTemplate<object, object>>(CreateInsertQueryTemplate); |
21 | | - private readonly Lazy<HandlebarsTemplate<object, object>> _updateQueryTemplate = new Lazy<HandlebarsTemplate<object, object>>(CreateUpdateQueryTemplate); |
22 | | - private readonly Lazy<HandlebarsTemplate<object, object>> _deleteQueryTemplate = new Lazy<HandlebarsTemplate<object, object>>(CreateDeleteQueryTemplate); |
23 | | - private readonly Lazy<HandlebarsTemplate<object, object>> _commentQueryTemplate = new Lazy<HandlebarsTemplate<object, object>>(CreateCommentQueryTemplate); |
| 19 | + private static Lazy<Template> _selectQueryTemplate = new Lazy<Template>(CreateSelectQueryTemplate); |
| 20 | + private static Lazy<Template> _insertQueryTemplate = new Lazy<Template>(CreateInsertQueryTemplate); |
| 21 | + private readonly Lazy<Template> _updateQueryTemplate = new Lazy<Template>(CreateUpdateQueryTemplate); |
| 22 | + private readonly Lazy<Template> _deleteQueryTemplate = new Lazy<Template>(CreateDeleteQueryTemplate); |
| 23 | + private readonly Lazy<Template> _commentQueryTemplate = new Lazy<Template>(CreateCommentQueryTemplate); |
24 | 24 | #endregion |
25 | 25 |
|
26 | 26 | #region Templates |
27 | 27 |
|
28 | | - private static HandlebarsTemplate<object, object> CreateSelectQueryTemplate() |
| 28 | + private static Template CreateSelectQueryTemplate() |
29 | 29 | { |
30 | | - var str = @" SELECT {{Join Columns}} FROM {{TableName}}; "; |
| 30 | + var str = @" SELECT {{ Columns | join: ', ' }} FROM {{ TableName }}; "; |
31 | 31 |
|
32 | | - return Handlebars.Compile(str); |
| 32 | + return Template.Parse(str); |
33 | 33 | } |
34 | 34 |
|
35 | | - private static HandlebarsTemplate<object, object> CreateInsertQueryTemplate() |
| 35 | + private static Template CreateInsertQueryTemplate() |
36 | 36 | { |
37 | 37 | var str = @" |
38 | | -INSERT INTO `{{TableName}}` ({{Join Columns}}) SELECT {{Join Values}} FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `{{TableName}}` WHERE {{And Where}} ) |
| 38 | +INSERT INTO `{{ TableName }}` ({{ Columns | join: ', ' }}) SELECT {{ Values | join: ', ' }} FROM DUAL WHERE NOT EXISTS ( SELECT 1 FROM `{{ TableName }}` WHERE {{ Where | join: ' AND ' }} ) |
39 | 39 | "; |
40 | 40 |
|
41 | | - return Handlebars.Compile(str); |
| 41 | + return Template.Parse(str); |
42 | 42 | } |
43 | 43 |
|
44 | | - private static HandlebarsTemplate<object, object> CreateUpdateQueryTemplate() |
| 44 | + private static Template CreateUpdateQueryTemplate() |
45 | 45 | { |
46 | 46 | var str = @" |
47 | | -UPDATE `{{TableName}}` SET {{Join Set}} WHERE {{And Where}} LIMIT 1; |
| 47 | +UPDATE `{{ TableName }}` SET {{ Set | join: ', ' }} WHERE {{ Where | join: ' AND ' }} LIMIT 1; |
48 | 48 | "; |
49 | | - return Handlebars.Compile(str); |
| 49 | + return Template.Parse(str); |
50 | 50 | } |
51 | 51 |
|
52 | | - private static HandlebarsTemplate<object, object> CreateDeleteQueryTemplate() |
| 52 | + private static Template CreateDeleteQueryTemplate() |
53 | 53 | { |
54 | 54 | var str = @" |
55 | | -DELETE FROM {{TableName}} WHERE {{And Where}} LIMIT 1; "; |
| 55 | +DELETE FROM {{ TableName }} WHERE {{ Where | join: ' AND ' }} LIMIT 1; "; |
56 | 56 |
|
57 | | - return Handlebars.Compile(str); |
| 57 | + return Template.Parse(str); |
58 | 58 | } |
59 | 59 |
|
60 | | - private static HandlebarsTemplate<object, object> CreateCommentQueryTemplate() |
| 60 | + private static Template CreateCommentQueryTemplate() |
61 | 61 | { |
62 | | - var str = @" |
63 | | -{{#if isMultiLine}} |
| 62 | + var str = @"{% unless isMultiLine %} -- {{ comment }} {% else %} |
64 | 63 | /* |
65 | | -{{comment}} |
| 64 | +{{ comment }} |
66 | 65 | */ |
67 | | -{{else}} |
68 | | --- {{comment}} |
69 | | -{{/if}}"; |
| 66 | +-- {{ comment }} {% endunless %}"; |
70 | 67 |
|
71 | | - return Handlebars.Compile(str); |
| 68 | + return Template.Parse(str); |
72 | 69 | } |
73 | 70 | #endregion |
74 | 71 |
|
|
0 commit comments