Skip to content

Commit

Permalink
Improved migrations and fixed unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Mantas Janulionis committed May 4, 2015
1 parent 262dc6f commit 67dea3a
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,41 +10,63 @@ namespace BetterModules.Core.DataAccess.DataContext.Migrations
{
public abstract class DefaultMigration : Migration
{
protected const string PostgresThrowNotSupportedErrorSql = "RAISE EXCEPTION 'NOT SUPPORTED IN CURRENT VERSION!';";
protected const string PostgresThrowNotSupportedErrorSql =
"RAISE EXCEPTION 'NOT SUPPORTED IN CURRENT VERSION!';";

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

private readonly string moduleName;

private string schemaName;

public string SchemaName
{
get
{
return schemaName ?? (schemaName = SchemaNameProvider.GetSchemaName(moduleName));
}
get { return schemaName ?? (schemaName = SchemaNameProvider.GetSchemaName(moduleName)); }
}

public DefaultMigration(string moduleName)
{
this.moduleName = moduleName;
var currentModule = ModulesRegistrationSingleton.Instance.GetModules().First(module => module.ModuleDescriptor.Name == moduleName);
schemaName = currentModule.ModuleDescriptor.SchemaName;
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
.FirstOrDefault(
module => module.ModuleDescriptor != null && module.ModuleDescriptor.Name == moduleName);
if (currentModule != null)
{
schemaName = currentModule.ModuleDescriptor.SchemaName;
}
}

public DefaultMigration(Type moduleDescriptorType)
{
var currentModule = ModulesRegistrationSingleton.Instance.GetModules().First(module => module.ModuleDescriptor.GetType() == moduleDescriptorType);
schemaName = currentModule.ModuleDescriptor.SchemaName;
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
.FirstOrDefault(
module => module.ModuleDescriptor != null && module.ModuleDescriptor.GetType() == moduleDescriptorType);
if (currentModule != null)
{
schemaName = currentModule.ModuleDescriptor.SchemaName;
}
}

public DefaultMigration()
{
var assembly = this.GetType().Assembly;
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
.FirstOrDefault(
module => module.ModuleDescriptor != null && module.ModuleDescriptor.AssemblyName == assembly.GetName());
if (currentModule != null)
{
schemaName = currentModule.ModuleDescriptor.SchemaName;
}
}

/// <summary>
/// Downs this instance.
/// </summary>
public override void Down()
{
throw new CoreException("Down migration not possible.", new NotSupportedException("Application doesn't support DOWN migrations."));
throw new CoreException("Down migration not possible.",
new NotSupportedException("Application doesn't support DOWN migrations."));
}

protected IIfDatabaseExpressionRoot IfSqlServer()
Expand All @@ -62,4 +84,4 @@ protected IIfDatabaseExpressionRoot IfOracle()
return IfDatabase("Oracle");
}
}
}
}
33 changes: 18 additions & 15 deletions BetterModules.Core/Models/EntityMapBase.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
using System;
using System.Linq;
using System.Reflection;
using Autofac;
using BetterModules.Core.DataContracts;
using BetterModules.Core.Dependencies;
using BetterModules.Core.Modules.Registration;
using FluentNHibernate.Mapping;
using NHibernate;

namespace BetterModules.Core.Models
{
Expand Down Expand Up @@ -48,8 +44,13 @@ protected string SchemaName
protected EntityMapBase(string moduleName)
{
this.moduleName = moduleName;
var currentModule = ModulesRegistrationSingleton.Instance.GetModules().First(module => module.ModuleDescriptor.Name == moduleName);
schemaName = currentModule.ModuleDescriptor.SchemaName;
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
.FirstOrDefault(
module => module.ModuleDescriptor != null && module.ModuleDescriptor.Name == moduleName);
if (currentModule != null)
{
schemaName = currentModule.ModuleDescriptor.SchemaName;
}
Init();
}

Expand All @@ -59,10 +60,13 @@ protected EntityMapBase(string moduleName)
/// <param name="moduleDescriptorType">Type of the module descriptor.</param>
protected EntityMapBase(Type moduleDescriptorType)
{
var currentModule =
ModulesRegistrationSingleton.Instance.GetModules()
.First(module => module.ModuleDescriptor.GetType() == moduleDescriptorType);
schemaName = currentModule.ModuleDescriptor.SchemaName;
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
.FirstOrDefault(
module => module.ModuleDescriptor != null && module.ModuleDescriptor.GetType() == moduleDescriptorType);
if (currentModule != null)
{
schemaName = currentModule.ModuleDescriptor.SchemaName;
}
Init();
}

Expand All @@ -71,15 +75,14 @@ protected EntityMapBase(Type moduleDescriptorType)
/// </summary>
protected EntityMapBase()
{
var assembly = Assembly.GetExecutingAssembly();
var currentModule =
ModulesRegistrationSingleton.Instance.GetModules()
.FirstOrDefault(module => module.ModuleDescriptor.AssemblyName == assembly.GetName());
var assembly = this.GetType().Assembly;
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
.FirstOrDefault(
module => module.ModuleDescriptor != null && module.ModuleDescriptor.AssemblyName == assembly.GetName());
if (currentModule != null)
{
schemaName = currentModule.ModuleDescriptor.SchemaName;
}

Init();
}

Expand Down
29 changes: 18 additions & 11 deletions BetterModules.Core/Models/EntitySubClassMapBase.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using System;
using System.Linq;
using System.Reflection;
using BetterModules.Core.Modules.Registration;
using FluentNHibernate.Mapping;

Expand Down Expand Up @@ -43,8 +42,13 @@ protected string SchemaName
protected EntitySubClassMapBase(string moduleName)
{
this.moduleName = moduleName;
var currentModule = ModulesRegistrationSingleton.Instance.GetModules().First(module => module.ModuleDescriptor.Name == moduleName);
schemaName = currentModule.ModuleDescriptor.SchemaName;
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
.FirstOrDefault(
module => module.ModuleDescriptor != null && module.ModuleDescriptor.Name == moduleName);
if (currentModule != null)
{
schemaName = currentModule.ModuleDescriptor.SchemaName;
}
Init();
}

Expand All @@ -55,10 +59,13 @@ protected EntitySubClassMapBase(string moduleName)
/// <param name="moduleDescriptorType">Type of the module descriptor.</param>
protected EntitySubClassMapBase(Type moduleDescriptorType)
{
var currentModule =
ModulesRegistrationSingleton.Instance.GetModules()
.First(module => module.ModuleDescriptor.GetType() == moduleDescriptorType);
schemaName = currentModule.ModuleDescriptor.SchemaName;
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
.FirstOrDefault(
module => module.ModuleDescriptor != null && module.ModuleDescriptor.GetType() == moduleDescriptorType);
if (currentModule != null)
{
schemaName = currentModule.ModuleDescriptor.SchemaName;
}
Init();
}

Expand All @@ -67,10 +74,10 @@ protected EntitySubClassMapBase(Type moduleDescriptorType)
/// </summary>
protected EntitySubClassMapBase()
{
var assembly = Assembly.GetExecutingAssembly();
var currentModule =
ModulesRegistrationSingleton.Instance.GetModules()
.FirstOrDefault(module => module.ModuleDescriptor.AssemblyName == assembly.GetName());
var assembly = this.GetType().Assembly;
var currentModule = ModulesRegistrationSingleton.Instance.GetModules()
.FirstOrDefault(
module => module.ModuleDescriptor != null && module.ModuleDescriptor.AssemblyName == assembly.GetName());
if (currentModule != null)
{
schemaName = currentModule.ModuleDescriptor.SchemaName;
Expand Down

0 comments on commit 67dea3a

Please sign in to comment.