/
DalConfig.cs
78 lines (68 loc) · 3.26 KB
/
DalConfig.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
using System.Collections.Generic;
using System.Linq;
namespace SimpleDataAccessLayer.Common.config.models
{
//
public class DalConfig
{
public DesignerConnection DesignerConnection { get; set; }
public string Namespace { get; set; }
public string RuntimeConnectionStringName { get; set; }
public List<Enum> Enums { get; set; }
public List<Procedure> Procedures { get; set; }
public DalConfig()
{
DesignerConnection = new DesignerConnection();
Namespace = "";
Enums = new List<SimpleDataAccessLayer.Common.config.models.Enum>();
Procedures = new List<Procedure>();
RuntimeConnectionStringName = "";
}
public DalConfig Clone()
{
var clone = new DalConfig()
{
DesignerConnection = new DesignerConnection()
{
Authentication = new Authentication()
{
AuthenticationType =
(DesignerConnection?.Authentication?.AuthenticationType) ??
AuthenticationType.WindowsAuthentication,
Password =
DesignerConnection?.Authentication?.Password == null
? null
: string.Copy(DesignerConnection?.Authentication?.Password),
UserName =
DesignerConnection?.Authentication?.UserName == null
? null
: string.Copy(DesignerConnection?.Authentication?.UserName),
SavePassword = (DesignerConnection?.Authentication?.SavePassword) ?? false
},
DatabaseName =
DesignerConnection?.DatabaseName == null ? null : string.Copy(DesignerConnection?.DatabaseName),
ServerName =
DesignerConnection?.ServerName == null ? null : string.Copy(DesignerConnection?.ServerName)
},
Namespace = Namespace == null ? null : string.Copy(Namespace),
RuntimeConnectionStringName =
RuntimeConnectionStringName == null ? null : string.Copy(RuntimeConnectionStringName),
Enums = new List<Enum>(Enums.Select(e => new Enum
{
Alias = e.Alias == null ? null : string.Copy(e.Alias),
Schema = e.Schema == null ? null : string.Copy(e.Schema),
ValueColumn = e.ValueColumn == null ? null : string.Copy(e.ValueColumn),
KeyColumn = e.KeyColumn == null ? null : string.Copy(e.KeyColumn),
TableName = e.TableName == null ? null : string.Copy(e.TableName)
})),
Procedures = new List<Procedure>(Procedures.Select(p => new Procedure
{
Schema = p.Schema == null ? null : string.Copy(p.Schema),
Alias = p.Alias == null ? null : string.Copy(p.Alias),
ProcedureName = p.ProcedureName == null ? null : string.Copy(p.ProcedureName)
}))
};
return clone;
}
}
}