forked from ThatRendle/Simple.Data
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDatabaseOpener.cs
More file actions
126 lines (102 loc) · 4.58 KB
/
DatabaseOpener.cs
File metadata and controls
126 lines (102 loc) · 4.58 KB
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
namespace Simple.Data
{
using System;
using System.Threading;
internal class DatabaseOpener : IDatabaseOpener
{
private static readonly IAdapterFactory AdapterFactory = new CachingAdapterFactory();
private static readonly ThreadLocal<DatabaseOpenerMethods> LocalOpenMethods = new ThreadLocal<DatabaseOpenerMethods>(() => new DatabaseOpenerMethods());
protected static DatabaseOpenerMethods OpenMethods
{
get { return LocalOpenMethods.Value; }
}
public dynamic OpenDefault(string schemaName = null)
{
return OpenMethods.OpenDefaultImpl(schemaName);
}
public dynamic OpenFile(string filename)
{
return OpenMethods.OpenFileImpl(filename);
}
public dynamic OpenConnection(string connectionString)
{
return OpenMethods.OpenConnectionImpl(connectionString);
}
public dynamic OpenConnection(string connectionString, string providerName)
{
return OpenMethods.OpenConnectionWithProviderImpl(connectionString, providerName);
}
public dynamic OpenConnection(string connectionString, string providerName, string schemaName)
{
return OpenMethods.OpenConnectionWithProviderAndSchemaImpl(connectionString, providerName, schemaName);
}
public dynamic Open(string adapterName, object settings)
{
return OpenMethods.OpenImpl(adapterName, settings);
}
public dynamic OpenNamedConnection(string connectionName)
{
return OpenMethods.OpenNamedConnectionImpl(connectionName);
}
public dynamic OpenNamedConnection(string connectionName, string schemaName)
{
return OpenMethods.OpenNamedConnectionAndSchemaImpl(connectionName, schemaName);
}
public void ClearAdapterCache()
{
((CachingAdapterFactory) AdapterFactory).Reset();
}
public static void UseMockDatabase(Database database)
{
OpenMethods.UseMockDatabase(database);
}
public static void UseMockAdapter(Adapter adapter)
{
OpenMethods.UseMockAdapter(adapter);
}
public static void UseMockDatabase(Func<Database> databaseCreator)
{
OpenMethods.UseMockDatabase(databaseCreator);
}
public static void UseMockAdapter(Func<Adapter> adapterCreator)
{
OpenMethods.UseMockAdapter(adapterCreator);
}
internal static Database OpenDefaultMethod(string schemaName = null)
{
return new Database(AdapterFactory.Create("Ado", new { ConnectionName = "Simple.Data.Properties.Settings.DefaultConnectionString", SchemaName = schemaName }));
}
internal static Database OpenFileMethod(string filename)
{
return new Database(AdapterFactory.Create("Ado", new { Filename = filename }));
}
internal static Database OpenConnectionMethod(string connectionString)
{
return new Database(AdapterFactory.Create("Ado", new { ConnectionString = connectionString }));
}
internal static Database OpenConnectionMethod(string connectionString, string providerName)
{
return new Database(AdapterFactory.Create("Ado", new { ConnectionString = connectionString, ProviderName = providerName }));
}
internal static Database OpenConnectionAndSchemaMethod(string connectionString, string providerName, string schemaName)
{
return new Database(AdapterFactory.Create("Ado", new { ConnectionString = connectionString, ProviderName = providerName, SchemaName = schemaName }));
}
internal static Database OpenNamedConnectionMethod(string connectionName)
{
return new Database(AdapterFactory.Create("Ado", new { ConnectionName = connectionName }));
}
internal static Database OpenNamedConnectionAndSchemaMethod(string connectionName, string schemaName)
{
return new Database(AdapterFactory.Create("Ado", new { ConnectionName = connectionName, SchemaName = schemaName }));
}
internal static Database OpenMethod(string adapterName, object settings)
{
return new Database(AdapterFactory.Create(adapterName, settings));
}
public static void StopUsingMock()
{
OpenMethods.StopUsingMock();
}
}
}