Refactoring and prepare to add update template
This commit is contained in:
parent
b4362789cc
commit
6540959778
|
@ -19,6 +19,7 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AdditionalFiles Include=".\Extensions\AddToEntityTemplate.csx" />
|
||||
<AdditionalFiles Include="Context\Templates\AddToEntityTemplate.csx" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
namespace BlueWest.WebApi.Context;
|
||||
|
||||
public class AttributeNavigation<T>
|
||||
{
|
||||
object HasForeignKey<TDependentEntity>(
|
||||
Expression<Func<TDependentEntity, object?>> foreignKeyExpression)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
using BlueWest.Data;
|
||||
using BlueWest.WebApi.Context;
|
||||
using BlueWest.WebApi.EF.Model;
|
||||
using MapTo;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
@ -16,15 +17,36 @@ namespace BlueWest.WebApi.EF
|
|||
/// <summary>
|
||||
/// Countries Database Table
|
||||
/// </summary>
|
||||
[EfAddMethods(typeof(CountryCreate), typeof(CountryUnique))]
|
||||
[EfAddMethods(
|
||||
createDto: typeof(CountryCreate),
|
||||
returnType: typeof(CountryUnique))
|
||||
]
|
||||
|
||||
[EfAddUpdateMethods(
|
||||
updateType: typeof(CountryUpdate),
|
||||
returnType: typeof(CountryUnique),
|
||||
keyPropertyName: "Id",
|
||||
keyPropertyType: typeof(System.Int64))
|
||||
]
|
||||
public DbSet<Country> Countries { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Currencies Database Table
|
||||
/// </summary>
|
||||
// Generate Add extension methods
|
||||
[EfAddMethods(typeof(CurrencyCreate), typeof(CurrencyUnique))]
|
||||
|
||||
[EfAddUpdateMethods(
|
||||
updateType: typeof(CurrencyUpdate),
|
||||
returnType: typeof(CurrencyUnique),
|
||||
keyPropertyName: "Id",
|
||||
keyPropertyType: typeof(System.Int64))
|
||||
]
|
||||
public DbSet<Currency> Currencies { get; set; }
|
||||
|
||||
////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////
|
||||
|
||||
/// <summary>
|
||||
/// App Configuration
|
||||
/// </summary>
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
using System;
|
||||
using System.Linq.Expressions;
|
||||
using BlueWest.Data;
|
||||
|
||||
namespace BlueWest.WebApi.Context;
|
||||
|
||||
[AttributeUsage(AttributeTargets.Property)]
|
||||
public class EfAddUpdateMethodsAttribute : Attribute
|
||||
{
|
||||
public EfAddUpdateMethodsAttribute(Type returnType, Type updateType, string keyPropertyName, Type keyPropertyType) { }
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
public static partial class {entityTypeName}Extensions {
|
||||
public static (bool, {readTypeFullName}) Add{entityTypeName}(
|
||||
this {contextFullName} dbContext, {createTypeFullName} {toCreateVarName}) {
|
||||
var {newEntityVarName} = new {entityTypeFullName}({toCreateVarName});
|
||||
dbContext.{propertyName}.Add({newEntityVarName});
|
||||
var success = dbContext.SaveChanges() >= 0;
|
||||
return (success, new {readTypeFullName}({newEntityVarName}));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace {Namespace}
|
||||
{
|
||||
{Code}
|
||||
}
|
|
@ -3,9 +3,9 @@ using Microsoft.EntityFrameworkCore;
|
|||
namespace {Namespace}
|
||||
{
|
||||
public static partial class {entityTypeName}Extensions {
|
||||
public static (bool, {readTypeFullName}) Add{entityTypeName}(
|
||||
this {contextFullName} dbContext, {createTypeFullName} {toCreateVarName}) {
|
||||
var {newEntityVarName} = new {entityTypeFullName}({toCreateVarName});
|
||||
public static (bool, {readTypeFullName}) Update{entityTypeName}(
|
||||
this {contextFullName} dbContext, {updateTypeFullName} {toUpdateVarName}) {
|
||||
var {newEntityVarName} = new {entityTypeFullName}({toUpdateVarName});
|
||||
dbContext.{propertyName}.Add({newEntityVarName});
|
||||
var success = dbContext.SaveChanges() >= 0;
|
||||
return (success, new {readTypeFullName}({newEntityVarName}));
|
|
@ -1 +1 @@
|
|||
Subproject commit 340a89bbd2e3d94cfb84f9a365d5e7db10f99bb8
|
||||
Subproject commit 4d9cc4b029b15049b5d9a8bb8e87f6d9a513b712
|
Loading…
Reference in New Issue