mirror of https://github.com/abpframework/abp.git
14 changed files with 94 additions and 95 deletions
@ -0,0 +1,36 @@ |
|||||
|
using System; |
||||
|
using System.Reflection; |
||||
|
using JetBrains.Annotations; |
||||
|
|
||||
|
namespace Volo.Abp.Data |
||||
|
{ |
||||
|
public class ConnectionStringNameAttribute : Attribute |
||||
|
{ |
||||
|
[NotNull] |
||||
|
public string Name { get; } |
||||
|
|
||||
|
public ConnectionStringNameAttribute([NotNull] string name) |
||||
|
{ |
||||
|
Check.NotNull(name, nameof(name)); |
||||
|
|
||||
|
Name = name; |
||||
|
} |
||||
|
|
||||
|
public static string GetConnStringName<T>() |
||||
|
{ |
||||
|
return GetConnStringName(typeof(T)); |
||||
|
} |
||||
|
|
||||
|
public static string GetConnStringName(Type type) |
||||
|
{ |
||||
|
var nameAttribute = type.GetTypeInfo().GetCustomAttribute<ConnectionStringNameAttribute>(); |
||||
|
|
||||
|
if (nameAttribute == null) |
||||
|
{ |
||||
|
return type.FullName; |
||||
|
} |
||||
|
|
||||
|
return nameAttribute.Name; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -1,37 +0,0 @@ |
|||||
using System; |
|
||||
using System.Reflection; |
|
||||
using JetBrains.Annotations; |
|
||||
|
|
||||
namespace Volo.Abp.Data |
|
||||
{ |
|
||||
//TODO: Rename DatabaseNameAttribute to ConnectionStringNameAttribute
|
|
||||
public class DatabaseNameAttribute : Attribute |
|
||||
{ |
|
||||
[NotNull] |
|
||||
public string Name { get; } |
|
||||
|
|
||||
public DatabaseNameAttribute([NotNull] string name) |
|
||||
{ |
|
||||
Check.NotNull(name, nameof(name)); |
|
||||
|
|
||||
Name = name; |
|
||||
} |
|
||||
|
|
||||
public static string GetDatabaseName<T>() |
|
||||
{ |
|
||||
return GetDatabaseName(typeof(T)); |
|
||||
} |
|
||||
|
|
||||
public static string GetDatabaseName(Type type) |
|
||||
{ |
|
||||
var databaseNameAttribute = type.GetTypeInfo().GetCustomAttribute<DatabaseNameAttribute>(); |
|
||||
|
|
||||
if (databaseNameAttribute == null) |
|
||||
{ |
|
||||
return type.FullName; |
|
||||
} |
|
||||
|
|
||||
return databaseNameAttribute.Name; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -0,0 +1,34 @@ |
|||||
|
using Shouldly; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Volo.Abp.Data |
||||
|
{ |
||||
|
public class ConnectionStringNameAttribute_Tests |
||||
|
{ |
||||
|
[Fact] |
||||
|
public void Should_Get_Class_FullName_If_Not_ConnStringNameAttribute_Specified() |
||||
|
{ |
||||
|
ConnectionStringNameAttribute |
||||
|
.GetConnStringName<MyClassWithoutConnStringName>() |
||||
|
.ShouldBe(typeof(MyClassWithoutConnStringName).FullName); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public void Should_Get_ConnStringName_If_Not_Specified() |
||||
|
{ |
||||
|
ConnectionStringNameAttribute |
||||
|
.GetConnStringName<MyClassWithConnStringName>() |
||||
|
.ShouldBe("MyDb"); |
||||
|
} |
||||
|
private class MyClassWithoutConnStringName |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
|
||||
|
[ConnectionStringName("MyDb")] |
||||
|
private class MyClassWithConnStringName |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -1,34 +0,0 @@ |
|||||
using Shouldly; |
|
||||
using Xunit; |
|
||||
|
|
||||
namespace Volo.Abp.Data |
|
||||
{ |
|
||||
public class DatabaseNameAttribute_Tests |
|
||||
{ |
|
||||
[Fact] |
|
||||
public void Should_Get_Class_FullName_If_Not_DatabaseNameAttribute_Specified() |
|
||||
{ |
|
||||
DatabaseNameAttribute |
|
||||
.GetDatabaseName<MyClassWithoutDatabaseName>() |
|
||||
.ShouldBe(typeof(MyClassWithoutDatabaseName).FullName); |
|
||||
} |
|
||||
|
|
||||
[Fact] |
|
||||
public void Should_Get_DatabaseName_If_Not_Specified() |
|
||||
{ |
|
||||
DatabaseNameAttribute |
|
||||
.GetDatabaseName<MyClassWithDatabaseName>() |
|
||||
.ShouldBe("MyDb"); |
|
||||
} |
|
||||
private class MyClassWithoutDatabaseName |
|
||||
{ |
|
||||
|
|
||||
} |
|
||||
|
|
||||
[DatabaseName("MyDb")] |
|
||||
private class MyClassWithDatabaseName |
|
||||
{ |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
Loading…
Reference in new issue