Skip to content

Commit 67dea3a

Browse files
author
Mantas Janulionis
committed
Improved migrations and fixed unit tests
1 parent 262dc6f commit 67dea3a

File tree

3 files changed

+70
-38
lines changed

3 files changed

+70
-38
lines changed

BetterModules.Core/DataAccess/DataContext/Migrations/DefaultMigration.cs

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,41 +10,63 @@ namespace BetterModules.Core.DataAccess.DataContext.Migrations
1010
{
1111
public abstract class DefaultMigration : Migration
1212
{
13-
protected const string PostgresThrowNotSupportedErrorSql = "RAISE EXCEPTION 'NOT SUPPORTED IN CURRENT VERSION!';";
13+
protected const string PostgresThrowNotSupportedErrorSql =
14+
"RAISE EXCEPTION 'NOT SUPPORTED IN CURRENT VERSION!';";
1415

15-
protected const string OracleThrowNotSupportedErrorSql = "raise_application_error(-1, 'NOT SUPPORTED IN CURRENT VERSION!');";
16+
protected const string OracleThrowNotSupportedErrorSql =
17+
"raise_application_error(-1, 'NOT SUPPORTED IN CURRENT VERSION!');";
1618

1719
private readonly string moduleName;
1820

1921
private string schemaName;
2022

2123
public string SchemaName
2224
{
23-
get
24-
{
25-
return schemaName ?? (schemaName = SchemaNameProvider.GetSchemaName(moduleName));
26-
}
25+
get { return schemaName ?? (schemaName = SchemaNameProvider.GetSchemaName(moduleName)); }
2726
}
2827

2928
public DefaultMigration(string moduleName)
3029
{
3130
this.moduleName = moduleName;
32-
var currentModule = ModulesRegistrationSingleton.Instance.GetModules().First(module => module.ModuleDescriptor.Name == moduleName);
33-
schemaName = currentModule.ModuleDescriptor.SchemaName;
31+
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
32+
.FirstOrDefault(
33+
module => module.ModuleDescriptor != null && module.ModuleDescriptor.Name == moduleName);
34+
if (currentModule != null)
35+
{
36+
schemaName = currentModule.ModuleDescriptor.SchemaName;
37+
}
3438
}
3539

3640
public DefaultMigration(Type moduleDescriptorType)
3741
{
38-
var currentModule = ModulesRegistrationSingleton.Instance.GetModules().First(module => module.ModuleDescriptor.GetType() == moduleDescriptorType);
39-
schemaName = currentModule.ModuleDescriptor.SchemaName;
42+
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
43+
.FirstOrDefault(
44+
module => module.ModuleDescriptor != null && module.ModuleDescriptor.GetType() == moduleDescriptorType);
45+
if (currentModule != null)
46+
{
47+
schemaName = currentModule.ModuleDescriptor.SchemaName;
48+
}
49+
}
50+
51+
public DefaultMigration()
52+
{
53+
var assembly = this.GetType().Assembly;
54+
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
55+
.FirstOrDefault(
56+
module => module.ModuleDescriptor != null && module.ModuleDescriptor.AssemblyName == assembly.GetName());
57+
if (currentModule != null)
58+
{
59+
schemaName = currentModule.ModuleDescriptor.SchemaName;
60+
}
4061
}
4162

4263
/// <summary>
4364
/// Downs this instance.
4465
/// </summary>
4566
public override void Down()
4667
{
47-
throw new CoreException("Down migration not possible.", new NotSupportedException("Application doesn't support DOWN migrations."));
68+
throw new CoreException("Down migration not possible.",
69+
new NotSupportedException("Application doesn't support DOWN migrations."));
4870
}
4971

5072
protected IIfDatabaseExpressionRoot IfSqlServer()
@@ -62,4 +84,4 @@ protected IIfDatabaseExpressionRoot IfOracle()
6284
return IfDatabase("Oracle");
6385
}
6486
}
65-
}
87+
}

BetterModules.Core/Models/EntityMapBase.cs

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
using System;
22
using System.Linq;
3-
using System.Reflection;
4-
using Autofac;
53
using BetterModules.Core.DataContracts;
6-
using BetterModules.Core.Dependencies;
74
using BetterModules.Core.Modules.Registration;
85
using FluentNHibernate.Mapping;
9-
using NHibernate;
106

117
namespace BetterModules.Core.Models
128
{
@@ -48,8 +44,13 @@ protected string SchemaName
4844
protected EntityMapBase(string moduleName)
4945
{
5046
this.moduleName = moduleName;
51-
var currentModule = ModulesRegistrationSingleton.Instance.GetModules().First(module => module.ModuleDescriptor.Name == moduleName);
52-
schemaName = currentModule.ModuleDescriptor.SchemaName;
47+
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
48+
.FirstOrDefault(
49+
module => module.ModuleDescriptor != null && module.ModuleDescriptor.Name == moduleName);
50+
if (currentModule != null)
51+
{
52+
schemaName = currentModule.ModuleDescriptor.SchemaName;
53+
}
5354
Init();
5455
}
5556

@@ -59,10 +60,13 @@ protected EntityMapBase(string moduleName)
5960
/// <param name="moduleDescriptorType">Type of the module descriptor.</param>
6061
protected EntityMapBase(Type moduleDescriptorType)
6162
{
62-
var currentModule =
63-
ModulesRegistrationSingleton.Instance.GetModules()
64-
.First(module => module.ModuleDescriptor.GetType() == moduleDescriptorType);
65-
schemaName = currentModule.ModuleDescriptor.SchemaName;
63+
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
64+
.FirstOrDefault(
65+
module => module.ModuleDescriptor != null && module.ModuleDescriptor.GetType() == moduleDescriptorType);
66+
if (currentModule != null)
67+
{
68+
schemaName = currentModule.ModuleDescriptor.SchemaName;
69+
}
6670
Init();
6771
}
6872

@@ -71,15 +75,14 @@ protected EntityMapBase(Type moduleDescriptorType)
7175
/// </summary>
7276
protected EntityMapBase()
7377
{
74-
var assembly = Assembly.GetExecutingAssembly();
75-
var currentModule =
76-
ModulesRegistrationSingleton.Instance.GetModules()
77-
.FirstOrDefault(module => module.ModuleDescriptor.AssemblyName == assembly.GetName());
78+
var assembly = this.GetType().Assembly;
79+
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
80+
.FirstOrDefault(
81+
module => module.ModuleDescriptor != null && module.ModuleDescriptor.AssemblyName == assembly.GetName());
7882
if (currentModule != null)
7983
{
8084
schemaName = currentModule.ModuleDescriptor.SchemaName;
8185
}
82-
8386
Init();
8487
}
8588

BetterModules.Core/Models/EntitySubClassMapBase.cs

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System;
22
using System.Linq;
3-
using System.Reflection;
43
using BetterModules.Core.Modules.Registration;
54
using FluentNHibernate.Mapping;
65

@@ -43,8 +42,13 @@ protected string SchemaName
4342
protected EntitySubClassMapBase(string moduleName)
4443
{
4544
this.moduleName = moduleName;
46-
var currentModule = ModulesRegistrationSingleton.Instance.GetModules().First(module => module.ModuleDescriptor.Name == moduleName);
47-
schemaName = currentModule.ModuleDescriptor.SchemaName;
45+
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
46+
.FirstOrDefault(
47+
module => module.ModuleDescriptor != null && module.ModuleDescriptor.Name == moduleName);
48+
if (currentModule != null)
49+
{
50+
schemaName = currentModule.ModuleDescriptor.SchemaName;
51+
}
4852
Init();
4953
}
5054

@@ -55,10 +59,13 @@ protected EntitySubClassMapBase(string moduleName)
5559
/// <param name="moduleDescriptorType">Type of the module descriptor.</param>
5660
protected EntitySubClassMapBase(Type moduleDescriptorType)
5761
{
58-
var currentModule =
59-
ModulesRegistrationSingleton.Instance.GetModules()
60-
.First(module => module.ModuleDescriptor.GetType() == moduleDescriptorType);
61-
schemaName = currentModule.ModuleDescriptor.SchemaName;
62+
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
63+
.FirstOrDefault(
64+
module => module.ModuleDescriptor != null && module.ModuleDescriptor.GetType() == moduleDescriptorType);
65+
if (currentModule != null)
66+
{
67+
schemaName = currentModule.ModuleDescriptor.SchemaName;
68+
}
6269
Init();
6370
}
6471

@@ -67,10 +74,10 @@ protected EntitySubClassMapBase(Type moduleDescriptorType)
6774
/// </summary>
6875
protected EntitySubClassMapBase()
6976
{
70-
var assembly = Assembly.GetExecutingAssembly();
71-
var currentModule =
72-
ModulesRegistrationSingleton.Instance.GetModules()
73-
.FirstOrDefault(module => module.ModuleDescriptor.AssemblyName == assembly.GetName());
77+
var assembly = this.GetType().Assembly;
78+
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
79+
.FirstOrDefault(
80+
module => module.ModuleDescriptor != null && module.ModuleDescriptor.AssemblyName == assembly.GetName());
7481
if (currentModule != null)
7582
{
7683
schemaName = currentModule.ModuleDescriptor.SchemaName;

0 commit comments

Comments
 (0)