@{
ModelData modelData = Model;
SysTableSchemaViewEntity[] sysTableSchemas = modelData.sysTableSchemas;
NamespaceObject namespaceObject = modelData.NamespaceObject;
}
using CloudBuilder.Core.DatabaseAccessor.Entity;
using Microsoft.AspNetCore.Authorization;
using CloudBuilder.Core.DatabaseAccessor;
@{
using @namespaceObject.Assembly.ToString().Entity;
using @namespaceObject.Assembly.ToString().Policy;
using @namespaceObject.Assembly.ToString().SearchCriteria;
}
namespace @namespaceObject.Assembly.ToString()@{.Service}
{
public class @sysTableSchemas[0].TableName.StringToProerty()Service : I@{@sysTableSchemas[0].TableName.StringToProerty()}Service
{
private readonly IApplicationService service;
private IRepository<@{@sysTableSchemas[0].TableName.StringToProerty()}Entity> repository;
public @{@sysTableSchemas[0].TableName.StringToProerty()}Service(IApplicationService service)
{
this.service = service;
repository = service.GetRepository>();
}
@if (@modelData.KeyCount < 2)
{
@for (var i = 0; i < sysTableSchemas.Length; i++)
{
if (@sysTableSchemas[i].FieldName.ToUpper() == "ID") { continue; }
if (@sysTableSchemas[i].Pk > 0 && @modelData.KeyCount < 2)
{
[PermissionOperate(name: @namespaceObject.Assembly.ToString().Replace(".Service", "").Replace("CloudBuilder.", "").Replace(".", "")PermissionPolicy.@{@sysTableSchemas[0].TableName.StringToProerty()}, operate: Operate.Find)]
public @{@sysTableSchemas[0].TableName.StringToProerty()}Entity FindByKey(@modelData.KeyType key)
{
return repository.DetachedEntities.Where(x => x.@{ @sysTableSchemas[i].FieldName.StringToProerty()} == key).FirstOrDefault()!;
}
}
}
}
else if (@modelData.KeyCount > 1)
{
[PermissionOperate(name: @namespaceObject.Assembly.ToString().Replace(".Service", "").Replace("CloudBuilder.", "").Replace(".", "")PermissionPolicy.@{@sysTableSchemas[0].TableName.StringToProerty()}, operate: Operate.Find)]
public @{@sysTableSchemas[0].TableName.StringToProerty()}Entity FindByKey(@{@sysTableSchemas[0].TableName.StringToProerty()}EntityKey key)
{
return repository.DetachedEntities.Where(x => 1==1
@for (var i = 0; i < sysTableSchemas.Length; i++)
{
if (@sysTableSchemas[i].FieldName.ToUpper() == "ID") { continue; }
if (@sysTableSchemas[i].Pk > 0)
{
&& x.@{ @sysTableSchemas[i].FieldName.StringToProerty()} == key.@{ @sysTableSchemas[i].FieldName.StringToProerty()}
}
}
).FirstOrDefault()!;
}
}
//[PermissionOperate(name: @namespaceObject.Assembly.ToString().Replace(".Service", "").Replace("CloudBuilder.", "").Replace(".", "")PermissionPolicy.@{@sysTableSchemas[0].TableName.StringToProerty()}, operate: Operate.Find)]
public dynamic FindBySearchCriteria(@{@sysTableSchemas[0].TableName.StringToProerty()}SearchCriteria criteria)
{
throw new NotImplementedException();
}
//[PermissionOperate(name: @namespaceObject.Assembly.ToString().Replace(".Service", "").Replace("CloudBuilder.", "").Replace(".", "")PermissionPolicy.@{@sysTableSchemas[0].TableName.StringToProerty()}, operate: Operate.Print)]
public dynamic PrintBySearchCriteria(@{@sysTableSchemas[0].TableName.StringToProerty()}SearchCriteria criteria)
{
throw new NotImplementedException();
}
[PermissionOperate(name: @namespaceObject.Assembly.ToString().Replace(".Service", "").Replace("CloudBuilder.", "").Replace(".", "")PermissionPolicy.@{@sysTableSchemas[0].TableName.StringToProerty()}, operate: Operate.Insert)]
[UnitOfWork]
public @{@sysTableSchemas[0].TableName.StringToProerty()}Entity Insert(@{@sysTableSchemas[0].TableName.StringToProerty()}Entity data)
{
throw new NotImplementedException();
}
[PermissionOperate(name: @namespaceObject.Assembly.ToString().Replace(".Service", "").Replace("CloudBuilder.", "").Replace(".", "")PermissionPolicy.@{@sysTableSchemas[0].TableName.StringToProerty()}, operate: Operate.Update)]
[UnitOfWork]
public @{@sysTableSchemas[0].TableName.StringToProerty()}Entity Update(@{@sysTableSchemas[0].TableName.StringToProerty()}Entity data)
{
throw new NotImplementedException();
}
@if (@modelData.KeyCount < 2)
{
@for (var i = 0; i < sysTableSchemas.Length; i++)
{
if (@sysTableSchemas[i].FieldName.ToUpper() == "ID") { continue; }
if (@sysTableSchemas[i].Pk > 0 && @modelData.KeyCount < 2)
{
[PermissionOperate(name: @namespaceObject.Assembly.ToString().Replace(".Service", "").Replace("CloudBuilder.", "").Replace(".", "")PermissionPolicy.@{@sysTableSchemas[0].TableName.StringToProerty()}, operate: Operate.Delete)]
[UnitOfWork]
public void Delete(@modelData.KeyType key)
{
var ent= repository.DetachedEntities.Where(x => x.@{ @sysTableSchemas[i].FieldName.StringToProerty()} == key).FirstOrDefault()!;
if (ent != null) { repository.DeleteNow(ent); }
}
}
}
}
else if (@modelData.KeyCount > 1)
{
[PermissionOperate(name: @namespaceObject.Assembly.ToString().Replace(".Service", "").Replace("CloudBuilder.", "").Replace(".", "")PermissionPolicy.@{@sysTableSchemas[0].TableName.StringToProerty()}, operate: Operate.Delete)]
public void Delete(@{@sysTableSchemas[0].TableName.StringToProerty()}EntityKey key)
{
@sysTableSchemas[0].TableName.StringToProerty()Entity ent = repository.DetachedEntities.Where(x => 1==1
@for (var i = 0; i < sysTableSchemas.Length; i++)
{
if (@sysTableSchemas[i].FieldName.ToUpper() == "ID") { continue; }
if (@sysTableSchemas[i].Pk > 0)
{
&& x.@{ @sysTableSchemas[i].FieldName.StringToProerty()} == key.@{ @sysTableSchemas[i].FieldName.StringToProerty()}
}
}
).FirstOrDefault()!;
if (ent != null) { repository.DeleteNow(ent); }
}
}
}
}