8000 Version 1.0.0 · optimajet/DataEngine.NET@5e92f24 · GitHub
[go: up one dir, main page]

Skip to content

Commit 5e92f24

Browse files
committed
Version 1.0.0
1.0.0 (autocommit)
1 parent cb1052f commit 5e92f24

File tree

71 files changed

+622
-458
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+622
-458
lines changed

OptimaJet.DataEngine.Mongo/Extensions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ namespace OptimaJet.DataEngine.Mongo;
55

66
public static class Extensions
77
{
8+
public static MongoProvider AsMongo(this IProvider provider)
9+
{
10+
return (MongoProvider) provider;
11+
}
12+
813
public static Task<ITransaction> AttachSessionAsync(this ISession session, IClientSessionHandle transaction, bool disposeSession = false)
914
{
1015
if (session.Provider.Name != ProviderName.Mongo)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
namespace OptimaJet.DataEngine.Mongo;
2+
3+
public class MongoOptions : IOptions
4+
{
5+
public MongoOptions Clone()
6+
{
7+
return new MongoOptions
8+
{
9+
10+
};
11+
}
12+
13+
object ICloneable.Clone()
14+
{
15+
return Clone();
16+
}
17+
}

OptimaJet.DataEngine.Mongo/MongoProvider.cs

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,20 @@ public static ProviderContext Use(string connectionString, MongoClient externalC
1414
{
1515
return ProviderContext.Use(new MongoProviderBuilder(connectionString, externalClient, false));
1616
}
17-
18-
public static ProviderContext UseDetached(string connectionString)
17+
18+
public static ProviderContext Create(string connectionString)
1919
{
2020
return ProviderContext.Use(new MongoProviderBuilder(connectionString, true));
2121
}
22-
23-
public static ProviderContext UseDetached(string connectionString, MongoClient externalClient)
22+
23+
public static ProviderContext Create(string connectionString, MongoClient externalClient)
2424
{
2525
return ProviderContext.Use(new MongoProviderBuilder(connectionString, externalClient, true));
2626
}
2727

28-
internal MongoProvider(SessionOptions options)
28+
internal MongoProvider(SessionOptions sessionOptions)
2929
{
30-
_options = options;
30+
_options = sessionOptions;
3131
}
3232

3333
public string Name => ProviderName.Mongo;
@@ -56,7 +56,32 @@ public ICollection<TEntity> GetCollection<TEntity>() where TEntity : class
5656

5757
return (ICollection<TEntity>) _collections[type];
5858
}
59-
59+
60+
public OptionsRestorer UseOptions(Action<MongoOptions> configureOptions)
61+
{
62+
var clone = Options.Clone();
63+
configureOptions(clone);
64+
return UseOptions(clone);
65+
}
66+
67+
public OptionsRestorer UseOptions(MongoOptions options)
68+
{
69+
var restorer = new OptionsRestorer(Options, o => Options = (MongoOptions) o);
70+
Options = options;
71+
return restorer;
72+
}
73+
74+
OptionsRestorer IProvider.UseOptions(Action<IOptions> configureOptions)
75+
{
76+
return UseOptions(configureOptions);
77+
}
78+
79+
OptionsRestorer IProvider.UseOptions(IOptions options)
80+
{
81+
return UseOptions((MongoOptions) options);
82+
}
83+
84+
public MongoOptions Options { get; private set; } = new();
6085
public string ConnectionString => _options.ConnectionString;
6186

6287
private ISession? _session;

OptimaJet.DataEngine.Mongo/MongoProviderBuilder.cs

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,33 +7,32 @@ public class MongoProviderBuilder : IProviderBuilder
77
{
88
public MongoProviderBuilder(string connectionString, bool isUniqueInstance)
99
{
10-
_isUniqueInstance = isUniqueInstance;
1110
_sessionOptions.ConnectionString = connectionString;
11+
_isUniqueInstance = isUniqueInstance;
1212
}
1313

1414
public MongoProviderBuilder(string connectionString, MongoClient externalClient, bool isUniqueInstance)
1515
{
1616
_sessionOptions.ConnectionString = connectionString;
1717
_sessionOptions.ExternalClient = externalClient;
18+
_isUniqueInstance = isUniqueInstance;
1819
}
1920

2021
public ProviderKey GetKey()
2122
{
22-
return (_sessionOptions, _isUniqueInstance) switch
23+
if (_isUniqueInstance)
24+
{
25+
return ProviderKey.GetUniqueKey(ProviderName.Mongo);
26+
}
27+
28+
if (_sessionOptions.ExternalClient != null)
2329
{
24-
({ExternalClient: not null}, true)
25-
=> ProviderKey.GetUniqueKey(ProviderName.Mongo, _sessionOptions.ExternalClient),
26-
({ExternalClient: not null}, false)
27-
=> ProviderKey.GetKey(ProviderName.Mongo, _sessionOptions.ExternalClient),
28-
({ConnectionString: not null}, true)
29-
=> ProviderKey.GetUniqueKey(ProviderName.Mongo, _sessionOptions.ConnectionString),
30-
({ConnectionString: not null}, false)
31-
=> ProviderKey.GetKey(ProviderName.Mongo, _sessionOptions.ConnectionString),
32-
_ => throw new InvalidOperationException(
33-
"Invalid options. Either ConnectionString or ExternalClient must be set.")
34-
};
30+
return< B428 /span> ProviderKey.GetKey(ProviderName.Mongo, _sessionOptions.ExternalClient);
31+
}
32+
33+
return ProviderKey.GetKey(ProviderName.Mongo, _sessionOptions.ConnectionString);
3534
}
36-
35+
3736
public IProvider Build()
3837
{
3938
return new MongoProvider(_sessionOptions);

OptimaJet.DataEngine.Mongo/OptimaJet.DataEngine.Mongo.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<!-- Version -->
33
<PropertyGroup>
4-
<Version>0.0.3</Version>
5-
<AssemblyVersion>0.0.3</AssemblyVersion>
6-
<FileVersion>0.0.3</FileVersion>
4+
<Version>1.0.0</Version>
5+
<AssemblyVersion>1.0.0</AssemblyVersion>
6+
<FileVersion>1.0.0</FileVersion>
77
</PropertyGroup>
88
<!-- Build -->
99
<PropertyGroup>

OptimaJet.DataEngine.Mssql/Extensions.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using Microsoft.Data.SqlClient;
2-
using OptimaJet.DataEngine.Sql;
32
using OptimaJet.DataEngine.Sql.Implementation;
43

54
namespace OptimaJet.DataEngine.Mssql;

OptimaJet.DataEngine.Mssql/Implementation/MssqlDialect.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ namespace OptimaJet.DataEngine.Mssql.Implementation;
44

55
internal class MssqlDialect : Dialect
66
{
7+
public override int MaxQueryParameters => 2099;
8+
public override int MaxInClauseItems => 2048;
9+
710
protected override string LeftQuote => "[";
811
protected override string RightQuote => "]";
912
}

OptimaJet.DataEngine.Mssql/Implementation/MssqlImplementation.cs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,18 @@ internal class MssqlImplementation : ISqlImplementation
1313
{
1414
static MssqlImplementation()
1515
{
16-
Dictionary<Type, ISqlTypeHandler> typeHandlers = new()
17-
{
18-
{typeof(TimeSpan), new MssqlTimeSpanHandler()},
19-
{typeof(TimeSpan?), new MssqlTimeSpanHandler()},
20-
};
21-
22-
TypeHandlersPool.SetTypeHandlers(ProviderName.Mssql, typeHandlers);
16+
TypeHandlerRegistry.Register(new MssqlTimeSpanHandler(), ProviderName.Mssql);
2317
}
24-
18+
2519
public string Name => ProviderName.Mssql;
2620
public Compiler Compiler { get; } = new SqlServerCompiler();
2721
public Dialect Dialect { get; } = new MssqlDialect();
28-
22+
2923
public DbConnection CreateConnection(string connectionString)
3024
{
3125
return new SqlConnection(connectionString);
3226
}
33-
27+
3428
public void ConfigureMetadata(EntityMetadata metadata)
3529
{
3630
// Do nothing

OptimaJet.DataEngine.Mssql/MssqlProvider.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ public static ProviderContext Use(SqlConnection externalConnection)
1414
return ProviderContext.Use(new MssqlProviderBuilder(externalConnection, false));
1515
}
1616

17-
public static ProviderContext UseDetached(string connectionString)
17+
public static ProviderContext Create(string connectionString)
1818
{
1919
return ProviderContext.Use(new MssqlProviderBuilder(connectionString, true));
2020
}
2121

22-
public static ProviderContext UseDetached(SqlConnection externalConnection)
22+
public static ProviderContext Create(SqlConnection externalConnection)
2323
{
2424
return ProviderContext.Use(new MssqlProviderBuilder(externalConnection, true));
2525
}

OptimaJet.DataEngine.Mssql/OptimaJet.DataEngine.Mssql.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<!-- Version -->
33
<PropertyGroup>
4-
<Version>0.0.3</Version>
5-
<AssemblyVersion>0.0.3</AssemblyVersion>
6-
<FileVersion>0.0.3</FileVersion>
4+
<Version>1.0.0</Version>
5+
<AssemblyVersion>1.0.0</AssemblyVersion>
6+
<FileVersion>1.0.0</FileVersion>
77
</PropertyGroup>
88
<!-- Build -->
99
<PropertyGroup>

0 commit comments

Comments
 (0)
0