-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathParameter.cs
82 lines (73 loc) · 3.46 KB
/
Parameter.cs
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
Copyright 2016 James Craig
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
using SQLHelperDB.ExtensionMethods;
using SQLHelperDB.HelperClasses.BaseClasses;
using SQLHelperDB.HelperClasses.Interfaces;
using System.Data;
using System.Data.Common;
namespace SQLHelperDB.HelperClasses
{
/// <summary>
/// Holds parameter information
/// </summary>
/// <typeparam name="TDataType">Data type of the parameter</typeparam>
public class Parameter<TDataType> : ParameterBase<TDataType>
{
/// <summary>
/// Constructor
/// </summary>
/// <param name="id">ID of the parameter</param>
/// <param name="value">Value of the parameter</param>
/// <param name="direction">Direction of the parameter</param>
/// <param name="parameterStarter">Parameter starter</param>
public Parameter(string id, TDataType value, ParameterDirection direction = ParameterDirection.Input, string parameterStarter = "@")
: base(id, value, direction, parameterStarter)
{
}
/// <summary>
/// Constructor
/// </summary>
/// <param name="id">ID of the parameter</param>
/// <param name="type">Database type</param>
/// <param name="value">Value of the parameter</param>
/// <param name="direction">Direction of the parameter</param>
/// <param name="parameterStarter">Parameter starter</param>
public Parameter(string id, SqlDbType type, object? value = null, ParameterDirection direction = ParameterDirection.Input, string parameterStarter = "@")
: base(id, type, value, direction, parameterStarter)
{
}
/// <summary>
/// Constructor
/// </summary>
/// <param name="id">ID of the parameter</param>
/// <param name="type">Database type</param>
/// <param name="value">Value of the parameter</param>
/// <param name="direction">Direction of the parameter</param>
/// <param name="parameterStarter">Parameter starter</param>
public Parameter(string id, DbType type, object? value = null, ParameterDirection direction = ParameterDirection.Input, string parameterStarter = "@")
: base(id, type, value, direction, parameterStarter)
{
}
/// <summary>
/// Adds this parameter to the SQLHelper
/// </summary>
/// <param name="helper">SQLHelper</param>
public override void AddParameter(DbCommand helper) => helper.AddParameter(ID, DatabaseType, Value, Direction);
/// <summary>
/// Creates a copy of the parameter
/// </summary>
/// <param name="suffix">Suffix to add to the parameter (for batching purposes)</param>
/// <returns>A copy of the parameter</returns>
public override IParameter CreateCopy(string suffix) => new Parameter<TDataType>(ID + suffix, DatabaseType, Value, Direction, ParameterStarter);
}
}