Browse Source

字段对照

bjmzak
DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
7f3e9b5212
  1. 9
      Shentun.Peis.sln
  2. 11
      src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugIns.cs
  3. 17
      src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsAsbitemBase.cs
  4. 37
      src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsBase.cs
  5. 60
      src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsDbBase.cs
  6. 8
      src/Shentun.ColumnReferencePlugIns/Shentun.Peis.ColumnReferencePlugIns.csproj
  7. 30
      src/Shentun.Peis.Application.Contracts/ColumnReferencePlugInss/ColumnReferencePlugInsDto.cs
  8. 11
      src/Shentun.Peis.Application.Contracts/ColumnReferencePlugInss/ColumnReferencePlugInsIdDto.cs
  9. 19
      src/Shentun.Peis.Application.Contracts/ColumnReferences/ColumnReferenceDto.cs
  10. 20
      src/Shentun.Peis.Application.Contracts/ColumnReferences/CreateColumnReferenceCDto.cs
  11. 24
      src/Shentun.Peis.Application.Contracts/ColumnReferences/CreateColumnReferenceDto.cs
  12. 21
      src/Shentun.Peis.Application.Contracts/ColumnReferences/UpdateColumnReferenceDto.cs
  13. 147
      src/Shentun.Peis.Application/ColumnReferencePlugInss/ColumnReferencePlugInsAppservice.cs
  14. 146
      src/Shentun.Peis.Application/ColumnReferences/ColumnReferenceAppService.cs
  15. 45
      src/Shentun.Peis.Application/ColumnReferences/ColumnReferencePlugInsBase.cs
  16. 90
      src/Shentun.Peis.Application/ColumnReferences/ColumnReferencePlugInsGemAsbitem.cs
  17. 8
      src/Shentun.Peis.Application/PeisApplicationAutoMapperProfile.cs
  18. 1
      src/Shentun.Peis.Application/Shentun.Peis.Application.csproj
  19. 58
      src/Shentun.Peis.Domain/ColumnReferencePlugInss/ColumnReferencePlugIns.cs
  20. 78
      src/Shentun.Peis.Domain/ColumnReferencePlugInss/ColumnReferencePlugInsManager.cs
  21. 16
      src/Shentun.Peis.Domain/ColumnReferences/ColumnReference.cs
  22. 69
      src/Shentun.Peis.Domain/ColumnReferences/ColumnReferenceManager.cs
  23. 32
      src/Shentun.Peis.EntityFrameworkCore/DbMapping/ColumnReferencePlugInses/ColumnReferencePlugInsDbMapping.cs
  24. 8
      src/Shentun.Peis.EntityFrameworkCore/DbMapping/ColumnReferences/ColumnReferenceDbMapping.cs
  25. 2
      src/Shentun.Peis.EntityFrameworkCore/EntityFrameworkCore/PeisDbContext.cs
  26. 98
      test/Shentun.Peis.Application.Tests/ColumnReferencePlugInsTest.cs
  27. 54
      test/Shentun.Peis.ColumnReference.Tests/ColumnReferencePlugInsAsbitemBaseTest.cs
  28. 51
      test/Shentun.Peis.ColumnReference.Tests/Shentun.Peis.ColumnReferencePlugIns.Tests.csproj
  29. 12
      test/Shentun.Peis.ColumnReference.Tests/UnitTest1.cs
  30. 2
      test/Shentun.Peis.ColumnReference.Tests/appsettings.Development.json
  31. 45
      test/Shentun.Peis.ColumnReference.Tests/appsettings.json
  32. 2
      test/Shentun.Peis.ColumnReference.Tests/appsettings.secrets.json

9
Shentun.Peis.sln

@ -39,7 +39,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Shentun.Utilities", "src\Sh
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Shentun.WebApi.Service", "src\Shentun.WebApi.Service\Shentun.WebApi.Service.csproj", "{77A31E87-AFEB-49F8-B379-44EC0A7A8ABF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shentun.ColumnReferencePlugIns", "src\Shentun.ColumnReferencePlugIns\Shentun.ColumnReferencePlugIns.csproj", "{2BEBCA90-0F46-4437-AA2C-41C7EFC67A1D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Shentun.Peis.ColumnReferencePlugIns", "src\Shentun.ColumnReferencePlugIns\Shentun.Peis.ColumnReferencePlugIns.csproj", "{2BEBCA90-0F46-4437-AA2C-41C7EFC67A1D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Shentun.Peis.ColumnReferencePlugIns.Tests", "test\Shentun.Peis.ColumnReference.Tests\Shentun.Peis.ColumnReferencePlugIns.Tests.csproj", "{DF36172F-76C9-4221-A04A-D73A4D7825BB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -115,6 +117,10 @@ Global
{2BEBCA90-0F46-4437-AA2C-41C7EFC67A1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2BEBCA90-0F46-4437-AA2C-41C7EFC67A1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2BEBCA90-0F46-4437-AA2C-41C7EFC67A1D}.Release|Any CPU.Build.0 = Release|Any CPU
{DF36172F-76C9-4221-A04A-D73A4D7825BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DF36172F-76C9-4221-A04A-D73A4D7825BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DF36172F-76C9-4221-A04A-D73A4D7825BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DF36172F-76C9-4221-A04A-D73A4D7825BB}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -137,6 +143,7 @@ Global
{D0FD4B06-8B09-4726-B201-224CB4E05195} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{77A31E87-AFEB-49F8-B379-44EC0A7A8ABF} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{2BEBCA90-0F46-4437-AA2C-41C7EFC67A1D} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0}
{DF36172F-76C9-4221-A04A-D73A4D7825BB} = {04DBDB01-70F4-4E06-B468-8F87850B22BE}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F}

11
src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugIns.cs

@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shentun.ColumnReferencePlugIns
namespace Shentun.Peis.ColumnReferencePlugIns
{
interface IColumnReferencePlugIns
{
@ -36,4 +36,13 @@ namespace Shentun.ColumnReferencePlugIns
public string DiaplayName { get; set; }
public int DisplayOrder { get; set; }
}
public class ColumnReferenceTable
{
public string TableName { get; set; }
public string CodeColumn { get; set; }
public string NameColumn { get; set; }
public string SimpleCodeColumn { get; set; }
public string DisplayOrderColumn { get; set; }
}
}

17
src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsAsbitemBase.cs

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shentun.Peis.ColumnReferencePlugIns
{
public class ColumnReferencePlugInsAsbitemBase: ColumnReferencePlugInsBase
{
public ColumnReferencePlugInsAsbitemBase(string configParm):base(configParm) { }
public override Task<List<ColumnReferenceCodeValue>> GetCodeValues()
{
return base.GetCodeValues();
}
}
}

37
src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsBase.cs

@ -1,21 +1,39 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using Dapper;
using Microsoft.Extensions.Configuration;
namespace Shentun.ColumnReferencePlugIns
using Npgsql;
using Shentun.Utilities;
namespace Shentun.Peis.ColumnReferencePlugIns
{
public class ColumnReferencePlugInsBase:IColumnReferencePlugIns
{
private IConfiguration _config;
public ColumnReferencePlugInsBase()
protected IConfiguration AppConfig;
protected IConfiguration InterfaceConfig;
protected string? ConnctionStr;
protected string AppSql;
public ColumnReferencePlugInsBase(string configParm)
{
_config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory()) // 设置基础路径为当前目录
AppConfig = new ConfigurationBuilder()
.SetBasePath(DirectoryHelper.GetAppDirectory()) // 设置基础路径为当前目录
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.Build();
ConnctionStr = AppConfig.GetSection("ConnectionStrings")
.GetSection("Default").Value;
var configurationBuilder = new ConfigurationBuilder()
.AddJsonStream(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(configParm)));
InterfaceConfig = configurationBuilder.Build();
AppSql = InterfaceConfig.GetSection("App").GetSection("Sql").Value;
}
public virtual List<string> GetColumns()
{
@ -36,10 +54,11 @@ namespace Shentun.ColumnReferencePlugIns
}
public virtual async Task<List<ColumnReferenceCodeValue>> GetCodeValues()
{
return new List<ColumnReferenceCodeValue>()
using (DbConnection conn = new NpgsqlConnection(ConnctionStr))
{
};
var list = (await conn.QueryAsync<ColumnReferenceCodeValue>(AppSql)).ToList();
return list;
}
}
public virtual async Task<List<ColumnReferenceCodeValue>> GetInterfaceCodeValues()
@ -59,5 +78,7 @@ namespace Shentun.ColumnReferencePlugIns
{
return null;
}
}
}

60
src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsDbBase.cs

@ -0,0 +1,60 @@
using Dapper;
using Microsoft.Data.SqlClient;
using Npgsql;
using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shentun.Peis.ColumnReferencePlugIns
{
public class ColumnReferencePlugInsDbBase: ColumnReferencePlugInsBase
{
protected string InterfaceSql;
protected string InterfaceDbType;
protected string? InterfaceConnctionStr;
public ColumnReferencePlugInsDbBase(string configParm):base(configParm)
{
InterfaceSql = InterfaceConfig.GetSection("Interface").GetSection("Sql").Value;
InterfaceDbType = InterfaceConfig.GetSection("Interface").GetSection("DbType").Value;
InterfaceConnctionStr = InterfaceConfig.GetSection("Interface").GetSection("ConnectionStrings").Value;
}
protected DbConnection CreateInterfaceDbConnect()
{
DbConnection conn ;
if (string.IsNullOrWhiteSpace(InterfaceConnctionStr))
{
throw new ArgumentException("数据连接设置中的DbType不能为空");
}
if (InterfaceDbType == "SqlServer")
{
conn = new SqlConnection(InterfaceConnctionStr);
}
else if (InterfaceDbType == "PostGres")
{
conn = new NpgsqlConnection(InterfaceConnctionStr);
}
else if (InterfaceDbType == "Oracle")
{
conn = new OracleConnection(InterfaceConnctionStr);
}
else
{
throw new ArgumentException("数据连接设置中的DbType不支持");
}
return conn;
}
public override async Task<List<ColumnReferenceCodeValue>> GetInterfaceCodeValues()
{
using (DbConnection conn = CreateInterfaceDbConnect())
{
var list = (await conn.QueryAsync<ColumnReferenceCodeValue>(InterfaceSql)).ToList();
return list;
}
}
}
}

8
src/Shentun.ColumnReferencePlugIns/Shentun.ColumnReferencePlugIns.csproj → src/Shentun.ColumnReferencePlugIns/Shentun.Peis.ColumnReferencePlugIns.csproj

@ -7,8 +7,16 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Dapper" Version="2.1.35" />
<PackageReference Include="Microsoft.Data.SqlClient" Version="5.2.0" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
<PackageReference Include="Npgsql" Version="8.0.2" />
<PackageReference Include="Oracle.ManagedDataAccess.Core" Version="3.21.140" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Shentun.Utilities\Shentun.Utilities.csproj" />
</ItemGroup>
</Project>

30
src/Shentun.Peis.Application.Contracts/ColumnReferencePlugInss/ColumnReferencePlugInsDto.cs

@ -1,30 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.ColumnReferencePlugInss
{
public class ColumnReferencePlugInsDto:AuditedEntityDtoName
{
/// <summary>
/// 名称
/// </summary>
public string DisplayName { get; set; }
/// <summary>
/// 显示顺序
/// </summary>
public int DisplayOrder { get; set; }
/// <summary>
/// Dll名称
/// </summary>
public string AssemblyName { get; set; }
/// <summary>
/// 类名
/// </summary>
public string ClassName { get; set; }
/// <summary>
/// 配置参数
/// </summary>
public string ParmValue { get; set; }
}
}

11
src/Shentun.Peis.Application.Contracts/ColumnReferencePlugInss/ColumnReferencePlugInsIdDto.cs

@ -1,11 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.ColumnReferencePlugInss
{
public class ColumnReferencePlugInsIdDto
{
public string Id { get; set; }
}
}

19
src/Shentun.Peis.Application.Contracts/ColumnReferencePlugInss/CreateColumnReferencePlugInsDto.cs → src/Shentun.Peis.Application.Contracts/ColumnReferences/ColumnReferenceDto.cs

@ -4,26 +4,23 @@ using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Shentun.Peis.ColumnReferencePlugInss
namespace Shentun.Peis.ColumnReferences
{
public class CreateColumnReferencePlugInsDto
public class ColumnReferenceDto : AuditedEntityDtoName
{
/// <summary>
/// 名称
/// </summary>
public string DisplayName { get; set; }
/// <summary>
/// 显示顺序
/// </summary>
public int DisplayOrder { get; set; }
/// <summary>
/// Dll名称
/// </summary>
public string AssemblyName { get; set; }
public string ClassName { get; set; }
/// <summary>
/// 配置参数
/// </summary>
[Column("parm_value")]
[StringLength(1000)]
public string ParmValue { get; set; }
[Column("display_order")]
public int DisplayOrder { get; set; }
}
}

20
src/Shentun.Peis.Application.Contracts/ColumnReferences/CreateColumnReferenceCDto.cs

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shentun.Peis.ColumnReferences
{
public class CreateColumnReferenceCDto
{
public Guid ColumnReferenceId { get; set; }
public List<CreateColumnReferenceValue> ColumnReferenceValues { get; set; }
}
public class CreateColumnReferenceValue
{
public string CodeValue { get; set; }
public string InterfaceCodeValue { get; set; }
}
}

24
src/Shentun.Peis.Application.Contracts/ColumnReferences/CreateColumnReferenceDto.cs

@ -1,20 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Text;
using System.Threading.Tasks;
namespace Shentun.Peis.ColumnReferences
{
public class CreateColumnReferenceDto
{
public Guid ColumnReferenceId { get; set; }
public List<CreateColumnReferenceValue> ColumnReferenceValues { get; set; }
}
/// <summary>
/// 名称
/// </summary>
public string DisplayName { get; set; }
/// <summary>
/// 配置参数
/// </summary>
[Column("parm_value")]
[StringLength(1000)]
public string ParmValue { get; set; }
public class CreateColumnReferenceValue
{
public string CodeValue { get; set; }
public string InterfaceCodeValue { get; set; }
[Column("display_order")]
public int DisplayOrder { get; set; }
}
}

21
src/Shentun.Peis.Application.Contracts/ColumnReferencePlugInss/UpdateColumnReferencePlugInsDto.cs → src/Shentun.Peis.Application.Contracts/ColumnReferences/UpdateColumnReferenceDto.cs

@ -1,27 +1,26 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace Shentun.Peis.ColumnReferencePlugInss
namespace Shentun.Peis.ColumnReferences
{
public class UpdateColumnReferencePlugInsDto
public class UpdateColumnReferenceDto
{
/// <summary>
/// 名称
/// </summary>
public string DisplayName { get; set; }
/// <summary>
/// 显示顺序
/// </summary>
public int DisplayOrder { get; set; }
/// <summary>
/// Dll名称
/// </summary>
public string AssemblyName { get; set; }
public string ClassName { get; set; }
/// <summary>
/// 配置参数
/// </summary>
[Column("parm_value")]
[StringLength(1000)]
public string ParmValue { get; set; }
[Column("display_order")]
public int DisplayOrder { get; set; }
}
}

147
src/Shentun.Peis.Application/ColumnReferencePlugInss/ColumnReferencePlugInsAppservice.cs

@ -1,147 +0,0 @@
using Microsoft.AspNetCore.Mvc;
using Shentun.Peis.CardTypes;
using Shentun.Peis.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Identity;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Users;
namespace Shentun.Peis.ColumnReferencePlugInss
{
public class ColumnReferencePlugInsAppservice : CrudAppService<
ColumnReferencePlugIns, //The Book entity
ColumnReferencePlugInsDto, //Used to show books
Guid, //Primary key of the book entity
PagedAndSortedResultRequestDto, //Used for paging/sorting
CreateColumnReferencePlugInsDto,
UpdateColumnReferencePlugInsDto>
{
private readonly IRepository<ColumnReferencePlugIns, Guid> _columnReferencePlugInsRepository;
private readonly ColumnReferencePlugInsManager _manager;
private readonly CacheService _cacheService;
private readonly IRepository<IdentityUser, Guid> _userRepository;
public ColumnReferencePlugInsAppservice(
IRepository<ColumnReferencePlugIns, Guid> columnReferencePlugInsRepository,
ColumnReferencePlugInsManager manager,
CacheService cacheService,
IRepository<IdentityUser, Guid> userRepository) : base(columnReferencePlugInsRepository)
{
_columnReferencePlugInsRepository = columnReferencePlugInsRepository;
_manager = manager;
_cacheService = cacheService;
_userRepository = userRepository;
}
/// <summary>
/// 根据ID查实体内容
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet("api/app/ColumnReferencePlugIns/get")]
public override async Task<ColumnReferencePlugInsDto> GetAsync(Guid id)
{
var entityDto = await base.GetAsync(id);
entityDto.CreatorName = _cacheService.GetUserNameAsync(entityDto.CreatorId).Result;
entityDto.LastModifierName = _cacheService.GetUserNameAsync(entityDto.LastModifierId).Result;
return entityDto;
}
[RemoteService(false)]
public override Task<PagedResultDto<ColumnReferencePlugInsDto>> GetListAsync(PagedAndSortedResultRequestDto input)
{
return base.GetListAsync(input);
}
/// <summary>
/// 查询列表
/// </summary>
/// <returns></returns>
[HttpGet("api/app/ColumnReferencePlugIns/GetColumnReferencePlugInsList")]
public async Task<List<ColumnReferencePlugInsDto>> GetColumnReferencePlugInsListAsync()
{
var userQueryable = await _userRepository.GetQueryableAsync();
var entlist = (from a in await _columnReferencePlugInsRepository.GetQueryableAsync()
join b in userQueryable on a.CreatorId equals b.Id into bb
from ab in bb.DefaultIfEmpty()
join c in userQueryable on a.LastModifierId equals c.Id into cc
from ac in cc.DefaultIfEmpty()
select new
{
a,
CreatorName = ab != null ? ab.UserName : "",
LastModifierName = ac != null ? ac.UserName : ""
})
.Select(s => new ColumnReferencePlugInsDto
{
CreationTime = s.a.CreationTime,
CreatorId = s.a.CreatorId,
LastModifierId = s.a.LastModifierId,
Id = s.a.Id,
DisplayOrder = s.a.DisplayOrder,
DisplayName = s.a.DisplayName,
AssemblyName = s.a.DisplayName,
ClassName = s.a.ClassName,
LastModificationTime = s.a.LastModificationTime,
CreatorName = s.CreatorName,
LastModifierName = s.LastModifierName
}).ToList();
return entlist;
}
/// <summary>
/// 创建
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/ColumnReferencePlugIns/Create")]
public override async Task<ColumnReferencePlugInsDto> CreateAsync(CreateColumnReferencePlugInsDto input)
{
var createEntity = ObjectMapper.Map<CreateColumnReferencePlugInsDto, ColumnReferencePlugIns>(input);
var entity = await _manager.CreateAsync(createEntity);
entity = await Repository.InsertAsync(entity);
var dto = ObjectMapper.Map<ColumnReferencePlugIns, ColumnReferencePlugInsDto>(entity);
return dto;
}
/// <summary>
/// 修改
/// </summary>
/// <param name="id"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/ColumnReferencePlugIns/Update")]
public override async Task<ColumnReferencePlugInsDto> UpdateAsync(Guid id, UpdateColumnReferencePlugInsDto input)
{
var entity = await Repository.GetAsync(id);
var sourceEntity = ObjectMapper.Map<UpdateColumnReferencePlugInsDto, ColumnReferencePlugIns>(input);
await _manager.UpdateAsync(sourceEntity, entity);
entity = await Repository.UpdateAsync(entity);
return ObjectMapper.Map<ColumnReferencePlugIns, ColumnReferencePlugInsDto>(entity);
}
/// <summary>
/// 删除
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost("api/app/ColumnReferencePlugIns/Delete")]
public override async Task DeleteAsync(Guid id)
{
var entity = await Repository.GetAsync(id);
await _manager.CheckAndDeleteAsync(entity);
}
}
}

146
src/Shentun.Peis.Application/ColumnReferences/ColumnReferenceAppService.cs

@ -12,33 +12,161 @@ using Volo.Abp;
using Shentun.Peis.Models;
using Microsoft.AspNetCore.Authorization;
using NPOI.SS.UserModel;
using Shentun.Peis.ColumnReferencePlugInss;
using System.Reflection;
using NUglify.JavaScript.Syntax;
using System.Collections;
using System.Linq.Dynamic.Core;
using SqlSugar;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Users;
using Volo.Abp.ObjectMapping;
using Microsoft.Extensions.Configuration;
using System.IO;
using Shentun.Peis.ColumnReferencePlugIns;
namespace Shentun.Peis.ColumnReferences
{
[ApiExplorerSettings(GroupName = "Work")]
[Authorize]
public class ColumnReferenceAppService : ApplicationService
public class ColumnReferenceAppService : CrudAppService<
ColumnReference, //The Book entity
ColumnReferenceDto, //Used to show books
Guid, //Primary key of the book entity
PagedAndSortedResultRequestDto, //Used for paging/sorting
CreateColumnReferenceDto,
UpdateColumnReferenceDto>
{
public readonly IRepository<ColumnReference, Guid> _repository;
public readonly IRepository<ColumnReferencePlugIns, Guid> _columnReferencePlugInsRepository;
private readonly IRepository<ColumnReference, Guid> _repository;
private readonly ColumnReferenceManager _manager;
private readonly CacheService _cacheService;
private readonly IRepository<IdentityUser, Guid> _userRepository;
public ColumnReferenceAppService(IRepository<ColumnReference, Guid> repository,
IRepository<ColumnReferencePlugIns, Guid> columnReferencePlugInsRepository)
ColumnReferenceManager manager,
CacheService cacheService,
IRepository<IdentityUser, Guid> userRepository
):base(repository)
{
_repository = repository;
_columnReferencePlugInsRepository = columnReferencePlugInsRepository;
_manager = manager;
_cacheService = cacheService;
_userRepository = userRepository;
}
/// <summary>
/// 根据ID查实体内容
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet("api/app/ColumnReference/get")]
public override async Task<ColumnReferenceDto> GetAsync(Guid id)
{
var entityDto = await base.GetAsync(id);
entityDto.CreatorName = _cacheService.GetUserNameAsync(entityDto.CreatorId).Result;
entityDto.LastModifierName = _cacheService.GetUserNameAsync(entityDto.LastModifierId).Result;
return entityDto;
}
[RemoteService(false)]
public override Task<PagedResultDto<ColumnReferenceDto>> GetListAsync(PagedAndSortedResultRequestDto input)
{
return base.GetListAsync(input);
}
/// <summary>
/// 查询列表
/// </summary>
/// <returns></returns>
[HttpGet("api/app/ColumnReference/GetColumnReferenceList")]
public async Task<List<ColumnReferenceDto>> GetColumnReferenceListAsync()
{
var userQueryable = await _userRepository.GetQueryableAsync();
var entlist = (from a in await _repository.GetQueryableAsync()
join b in userQueryable on a.CreatorId equals b.Id into bb
from ab in bb.DefaultIfEmpty()
join c in userQueryable on a.LastModifierId equals c.Id into cc
from ac in cc.DefaultIfEmpty()
select new
{
a,
CreatorName = ab != null ? ab.UserName : "",
LastModifierName = ac != null ? ac.UserName : ""
})
.Select(s => new ColumnReferenceDto
{
CreationTime = s.a.CreationTime,
CreatorId = s.a.CreatorId,
LastModifierId = s.a.LastModifierId,
Id = s.a.Id,
DisplayOrder = s.a.DisplayOrder,
DisplayName = s.a.DisplayName,
ParmValue = s.a.ParmValue,
LastModificationTime = s.a.LastModificationTime,
CreatorName = s.CreatorName,
LastModifierName = s.LastModifierName
}).ToList();
return entlist;
}
/// <summary>
/// 创建
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/ColumnReference/Create")]
public override async Task<ColumnReferenceDto> CreateAsync(CreateColumnReferenceDto input)
{
var createEntity = ObjectMapper.Map<CreateColumnReferenceDto, ColumnReference>(input);
var entity = await _manager.CreateAsync(createEntity);
entity = await Repository.InsertAsync(entity);
var dto = ObjectMapper.Map<ColumnReference, ColumnReferenceDto>(entity);
return dto;
}
/// <summary>
/// 修改
/// </summary>
/// <param name="id"></param>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/ColumnReference/Update")]
public override async Task<ColumnReferenceDto> UpdateAsync(Guid id, UpdateColumnReferenceDto input)
{
var entity = await Repository.GetAsync(id);
var sourceEntity = ObjectMapper.Map<UpdateColumnReferenceDto, ColumnReference>(input);
await _manager.UpdateAsync(sourceEntity, entity);
entity = await Repository.UpdateAsync(entity);
return ObjectMapper.Map<ColumnReference, ColumnReferenceDto>(entity);
}
/// <summary>
/// 删除
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost("api/app/ColumnReference/Delete")]
public override async Task DeleteAsync(Guid id)
{
var entity = await Repository.GetAsync(id);
await _manager.CheckAndDeleteAsync(entity);
}
public async Task<List<string>> GetColumns(ColumnReferenceIdInputDto input)
{
var entity = await _repository.GetAsync(input.Id);
var columnReferencePlugIns = await _columnReferencePlugInsRepository.GetAsync(entity.ColumnReferencePlugInsId);
object objectValue= Invoke(columnReferencePlugIns.AssemblyName, columnReferencePlugIns.ClassName, "GetColumns");
var parmValue = entity.ParmValue;
var configurationBuilder = new ConfigurationBuilder()
.AddJsonStream(new MemoryStream(System.Text.Encoding.UTF8.GetBytes(parmValue)));
var config = configurationBuilder.Build();
var assemblyName = config.GetSection("Interface").GetSection("AssemblyName").Value;
var className = config.GetSection("Interface").GetSection("ClassName").Value;
object objectValue= Invoke(assemblyName, className, "GetColumns");
List<string> list = new List<string>();
if (objectValue is IEnumerable enumerableObject)

45
src/Shentun.Peis.Application/ColumnReferences/ColumnReferencePlugInsBase.cs

@ -1,45 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shentun.Peis.ColumnReferences
{
interface IColumnReferencePlugIns
{
public List<string> GetColumns();
public string GetFilterColumnName();
public List<string> GetInterfaceColumns();
public Task<List<ColumnReferenceCodeValue>> GetCodeValues();
public Task<List<ColumnReferenceFilterCodeValue>> GetFilterCodeValues();
public Task<List<ColumnReferenceCodeValue>> GetInterfaceCodeValues();
}
public class ColumnReferencePlugInsSet
{
public Guid Id { get; set; }
public string DisplayName { get; set; }
}
public class ColumnReferenceCodeValue
{
public string Code { get; set; }
public string DisplayName { get; set; }
public string FilterCode { get; set; }
public string Exter1 { get; set; }
public string Exter2 { get; set; }
public string Exter3 { get; set; }
public string Exter4 { get; set; }
public string Exter5 { get; set; }
public int DisplayOrder { get; set; }
}
public class ColumnReferenceFilterCodeValue
{
public string Code { get; set; }
public string DiaplayName { get; set; }
public int DisplayOrder { get; set; }
}
}

90
src/Shentun.Peis.Application/ColumnReferences/ColumnReferencePlugInsGemAsbitem.cs

@ -1,90 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shentun.Peis.ColumnReferences
{
public class ColumnReferencePlugInsGemAsbitem: IColumnReferencePlugIns
{
public List<string> GetColumns()
{
return new List<string>
{
"编码",
"名称",
"规格"
};
}
public List<string> GetInterfaceColumns()
{
return new List<string>
{
"编码",
"名称",
"规格"
};
}
public async Task<List<ColumnReferenceCodeValue>> GetCodeValues()
{
return new List<ColumnReferenceCodeValue>()
{
new ColumnReferenceCodeValue()
{
Code = "001",
DisplayName = "血常规",
Exter1 = "一次"
},
new ColumnReferenceCodeValue()
{
Code = "002",
DisplayName = "腹部彩超",
Exter1 = "一次"
},
new ColumnReferenceCodeValue()
{
Code = "内科",
DisplayName = "血常规",
Exter1 = "一次"
}
};
}
public async Task<List<ColumnReferenceCodeValue>> GetInterfaceCodeValues()
{
return new List<ColumnReferenceCodeValue>()
{
new ColumnReferenceCodeValue()
{
Code = "001",
DisplayName = "血常规",
Exter1 = "一次"
},
new ColumnReferenceCodeValue()
{
Code = "002",
DisplayName = "腹部彩超",
Exter1 = "一次"
},
new ColumnReferenceCodeValue()
{
Code = "内科",
DisplayName = "血常规",
Exter1 = "一次"
}
};
}
public async Task<List<ColumnReferenceFilterCodeValue>> GetFilterCodeValues()
{
throw new NotImplementedException();
}
public string GetFilterColumnName()
{
return null;
}
}
}

8
src/Shentun.Peis.Application/PeisApplicationAutoMapperProfile.cs

@ -6,7 +6,7 @@ using Shentun.Peis.BirthPlaces;
using Shentun.Peis.Books;
using Shentun.Peis.CardRegisters;
using Shentun.Peis.CardTypes;
using Shentun.Peis.ColumnReferencePlugInss;
using Shentun.Peis.ColumnReferences;
using Shentun.Peis.CommonChars;
using Shentun.Peis.CommonCharTypes;
using Shentun.Peis.ContactMethods;
@ -444,9 +444,9 @@ public class PeisApplicationAutoMapperProfile : Profile
CreateMap<CreateMenuInfoDto, MenuInfo>();
CreateMap<UpdateMenuInfoDto, MenuInfo>();
CreateMap<ColumnReferencePlugIns, ColumnReferencePlugInsDto>();
CreateMap<CreateColumnReferencePlugInsDto, ColumnReferencePlugIns>();
CreateMap<UpdateColumnReferencePlugInsDto, ColumnReferencePlugIns>();
CreateMap<ColumnReference, ColumnReferenceDto>();
CreateMap<CreateColumnReferenceDto, ColumnReference>();
CreateMap<UpdateColumnReferenceDto, ColumnReference>();
}

1
src/Shentun.Peis.Application/Shentun.Peis.Application.csproj

@ -19,6 +19,7 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Shentun.ColumnReferencePlugIns\Shentun.Peis.ColumnReferencePlugIns.csproj" />
<ProjectReference Include="..\Shentun.Peis.Domain\Shentun.Peis.Domain.csproj" />
<ProjectReference Include="..\Shentun.Peis.Application.Contracts\Shentun.Peis.Application.Contracts.csproj" />
<ProjectReference Include="..\Shentun.Peis.EntityFrameworkCore\Shentun.Peis.EntityFrameworkCore.csproj" />

58
src/Shentun.Peis.Domain/ColumnReferencePlugInss/ColumnReferencePlugIns.cs

@ -1,58 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.Domain.Entities;
using System.ComponentModel.DataAnnotations;
namespace Shentun.Peis.Models
{
/// <summary>
/// 字段对照插件表
/// </summary>
[Table("column_reference_plug_ins")]
public class ColumnReferencePlugIns : AuditedEntity<Guid>, IDisplayName, IHasConcurrencyStamp, IDisplayOrder
{
public ColumnReferencePlugIns() { }
public ColumnReferencePlugIns(Guid id):base(id) { }
/// <summary>
/// 名称
/// </summary>
[Column("display_name")]
[StringLength(30)]
public string DisplayName { get; set; }
/// <summary>
/// 显示顺序
/// </summary>
[Column("display_order")]
public int DisplayOrder { get; set; }
/// <summary>
/// Dll名称
/// </summary>
[Column("assembly_name")]
[StringLength(100)]
public string AssemblyName { get; set; }
[Column("class_name")]
[StringLength(100)]
public string ClassName { get; set; }
/// <summary>
/// 配置参数
/// </summary>
[Column("parm_value")]
[StringLength(500)]
public string ParmValue { get; set; }
[Column("concurrency_stamp")]
public string ConcurrencyStamp { get; set; }
public virtual ICollection<ColumnReference> ColumnReferences { get; set; }
}
}

78
src/Shentun.Peis.Domain/ColumnReferencePlugInss/ColumnReferencePlugInsManager.cs

@ -1,78 +0,0 @@
using Shentun.Peis.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Domain.Services;
namespace Shentun.Peis.ColumnReferencePlugInss
{
public class ColumnReferencePlugInsManager : DomainService
{
private readonly IRepository<ColumnReferencePlugIns, Guid> _repository;
private readonly IRepository<ColumnReference, Guid> _columnReferenceRepository;
public ColumnReferencePlugInsManager(
IRepository<ColumnReferencePlugIns, Guid> repository,
IRepository<ColumnReference, Guid> columnReferenceRepository
)
{
_repository = repository;
_columnReferenceRepository = columnReferenceRepository;
}
/// <summary>
/// 创建
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public async Task<ColumnReferencePlugIns> CreateAsync(
ColumnReferencePlugIns entity
)
{
DataHelper.CheckEntityIsNull(entity);
//Verify(entity);
await EntityHelper.CheckSameName(_repository, entity.DisplayName);
return new ColumnReferencePlugIns(
GuidGenerator.Create()
)
{
DisplayName = entity.DisplayName,
DisplayOrder = await EntityHelper.CreateMaxDisplayOrder(_repository),
};
}
public async Task UpdateAsync(
ColumnReferencePlugIns sourceEntity,
ColumnReferencePlugIns targetEntity
)
{
DataHelper.CheckEntityIsNull(sourceEntity);
DataHelper.CheckEntityIsNull(targetEntity);
if (sourceEntity.DisplayName != targetEntity.DisplayName)
{
await EntityHelper.CheckSameName<ColumnReferencePlugIns, Guid>(_repository, sourceEntity.DisplayName, targetEntity);
targetEntity.DisplayName = sourceEntity.DisplayName;
}
targetEntity.ParmValue = sourceEntity.ParmValue;
targetEntity.AssemblyName = sourceEntity.AssemblyName;
targetEntity.ClassName = sourceEntity.ClassName;
}
public async Task CheckAndDeleteAsync(ColumnReferencePlugIns entity)
{
var queryable = await _columnReferenceRepository.GetQueryableAsync();
var item = queryable.Where(o => o.ColumnReferencePlugInsId.Equals(entity.Id)).FirstOrDefault();
if (item != null)
{
throw new UserFriendlyException("", $"插件\"{entity.DisplayName}\"已在字段对照中\"{item.DisplayName}\"中使用,不能删除");
}
await _repository.DeleteAsync(entity);
}
}
}

16
src/Shentun.Peis.Domain/ColumnReferences/ColumnReference.cs

@ -11,14 +11,14 @@ using Shentun.Peis.Models;
namespace Shentun.Peis.Models
{
/// <summary>
/// 字段对照主表
/// </summary>
[Table("column_reference")]
public class ColumnReference : AuditedEntity<Guid>, IDisplayName, IHasConcurrencyStamp,IDisplayOrder
{
public ColumnReference() { }
public ColumnReference(Guid id):base(id) { }
/// <summary>
/// 名称
/// </summary>
@ -27,10 +27,12 @@ namespace Shentun.Peis.Models
public string DisplayName { get; set; }
/// <summary>
/// 插件ID
/// 配置参数
/// </summary>
[Column("column_reference_plug_ins_id")]
public Guid ColumnReferencePlugInsId { get; set; }
[Column("parm_value")]
[StringLength(1000)]
public string ParmValue { get; set; }
[Column("display_order")]
public int DisplayOrder { get; set; }
@ -38,10 +40,6 @@ namespace Shentun.Peis.Models
[Column("concurrency_stamp")]
public string ConcurrencyStamp { get; set; }
[ForeignKey(nameof(ColumnReferencePlugInsId))]
public virtual ColumnReferencePlugIns ColumnReferencePlugIns { get; set; }
public virtual ICollection<ColumnReferenceCode> ColumnReferenceCodes { get; set; }
}
}

69
src/Shentun.Peis.Domain/ColumnReferences/ColumnReferenceManager.cs

@ -0,0 +1,69 @@
using Shentun.Peis.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
using Volo.Abp;
using Volo.Abp.Domain.Services;
namespace Shentun.Peis.ColumnReferences
{
public class ColumnReferenceManager: DomainService
{
private readonly IRepository<ColumnReference, Guid> _repository;
public ColumnReferenceManager(
IRepository<ColumnReference, Guid> repository
)
{
_repository = repository;
}
/// <summary>
/// 创建
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public async Task<ColumnReference> CreateAsync(
ColumnReference entity
)
{
DataHelper.CheckEntityIsNull(entity);
//Verify(entity);
await EntityHelper.CheckSameName(_repository, entity.DisplayName);
return new ColumnReference(
GuidGenerator.Create()
)
{
DisplayName = entity.DisplayName,
ParmValue = entity.ParmValue,
DisplayOrder = await EntityHelper.CreateMaxDisplayOrder(_repository),
};
}
public async Task UpdateAsync(
ColumnReference sourceEntity,
ColumnReference targetEntity
)
{
DataHelper.CheckEntityIsNull(sourceEntity);
DataHelper.CheckEntityIsNull(targetEntity);
if (sourceEntity.DisplayName != targetEntity.DisplayName)
{
await EntityHelper.CheckSameName<ColumnReference, Guid>(_repository, sourceEntity.DisplayName, targetEntity);
targetEntity.DisplayName = sourceEntity.DisplayName;
}
targetEntity.ParmValue = sourceEntity.ParmValue;
}
public async Task CheckAndDeleteAsync(ColumnReference entity)
{
await _repository.DeleteAsync(entity);
}
}
}

32
src/Shentun.Peis.EntityFrameworkCore/DbMapping/ColumnReferencePlugInses/ColumnReferencePlugInsDbMapping.cs

@ -1,32 +0,0 @@
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Microsoft.EntityFrameworkCore;
using Shentun.Peis.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Shentun.Peis.EntityFrameworkCore;
namespace Shentun.Peis.DbMapping
{
internal class ColumnReferencePlugInsDbMapping : IEntityTypeConfiguration<ColumnReferencePlugIns>
{
public void Configure(EntityTypeBuilder<ColumnReferencePlugIns> entity)
{
entity.HasComment("字段对照插件表");
entity.Property(t => t.DisplayName).HasComment("名称").IsRequired();
entity.Property(t => t.AssemblyName).HasComment("Assembly名称").IsRequired();
entity.Property(t => t.ClassName).HasComment("Class名称").IsRequired();
entity.Property(t => t.ParmValue).HasComment("配置参数");
entity.Property(t => t.DisplayOrder).HasComment("显示顺序").IsRequired();
entity.Property(e => e.Id)
.IsFixedLength()
.HasComment("编号").HasColumnName("id");
entity.ConfigureByConvention();
}
}
}

8
src/Shentun.Peis.EntityFrameworkCore/DbMapping/ColumnReferences/ColumnReferenceDbMapping.cs

@ -18,19 +18,13 @@ namespace Shentun.Peis.DbMapping
{
entity.HasComment("字段对照主表");
entity.Property(t => t.DisplayName).HasComment("名称").IsRequired();
entity.Property(t => t.ColumnReferencePlugInsId).HasComment("插件ID").IsRequired();
entity.Property(t => t.DisplayOrder).HasComment("显示顺序").IsRequired();
entity.Property(e => e.Id)
.IsFixedLength()
.HasComment("编号").HasColumnName("id");
entity.HasOne(d => d.ColumnReferencePlugIns)
.WithMany(p => p.ColumnReferences)
.HasForeignKey(d => d.ColumnReferencePlugInsId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("fk_columnreference_columnreferenceplugins");
entity.ConfigureByConvention();
}

2
src/Shentun.Peis.EntityFrameworkCore/EntityFrameworkCore/PeisDbContext.cs

@ -308,7 +308,6 @@ public class PeisDbContext :
#region 字段对照
public DbSet<FieldComparison> FieldComparisons { get; set; } = null!;
public DbSet<ColumnReferencePlugIns> ColumnReferencePlugInses { get; set; } = null!;
public DbSet<ColumnReference> ColumnReferences { get; set; } = null!;
public DbSet<ColumnReferenceCode> ColumnReferenceCodes { get; set; } = null!;
public DbSet<ColumnReferenceInterface> ColumnReferenceInterfaces { get; set; } = null!;
@ -537,7 +536,6 @@ public class PeisDbContext :
.ApplyConfiguration(new RoleMenuInfoDbMapping())
.ApplyConfiguration(new MenuInfoDbMapping())
.ApplyConfiguration(new FieldComparisonDbMapping())
.ApplyConfiguration(new ColumnReferencePlugInsDbMapping())
.ApplyConfiguration(new ColumnReferenceDbMapping())
.ApplyConfiguration(new ColumnReferenceCodeDbMapping())
.ApplyConfiguration(new ColumnReferenceInterfaceDbMapping());

98
test/Shentun.Peis.Application.Tests/ColumnReferencePlugInsTest.cs

@ -1,98 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Shentun.Peis.ColumnReferences;
namespace Shentun.Peis
{
public class ColumnReferencePlugInsTest: IColumnReferencePlugIns
{
public List<string> GetColumns()
{
return new List<string>
{
"编码",
"名称",
"规格"
};
}
public List<string> GetInterfaceColumns()
{
return new List<string>
{
"编码",
"名称",
"规格"
};
}
public async Task<List<ColumnReferenceCodeValue>> GetCodeValues()
{
return new List<ColumnReferenceCodeValue>()
{
new ColumnReferenceCodeValue()
{
Code = "001",
DisplayName = "血常规",
Exter1 = "一次"
},
new ColumnReferenceCodeValue()
{
Code = "002",
DisplayName = "腹部彩超",
Exter1 = "一次"
},
new ColumnReferenceCodeValue()
{
Code = "内科",
DisplayName = "血常规",
Exter1 = "一次"
}
};
}
public async Task<List<ColumnReferenceCodeValue>> GetInterfaceCodeValues()
{
return new List<ColumnReferenceCodeValue>()
{
new ColumnReferenceCodeValue()
{
Code = "001",
DisplayName = "血常规",
Exter1 = "一次"
},
new ColumnReferenceCodeValue()
{
Code = "002",
DisplayName = "腹部彩超",
Exter1 = "一次"
},
new ColumnReferenceCodeValue()
{
Code = "内科",
DisplayName = "血常规",
Exter1 = "一次"
}
};
}
public async Task<List<ColumnReferenceFilterCodeValue>> GetFilterCodeValues()
{
throw new NotImplementedException();
}
public string GetFilterColumnName()
{
return null;
}
}
public class Column
{
public string ColumnId { get; set; }
public string ColumnName { get; set; }
}
}

54
test/Shentun.Peis.ColumnReference.Tests/ColumnReferencePlugInsAsbitemBaseTest.cs

@ -0,0 +1,54 @@
using Microsoft.Extensions.Configuration;
using NPOI.OpenXmlFormats.Dml;
using Shentun.Peis.ColumnReferencePlugIns;
using Shentun.Utilities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xunit.Abstractions;
namespace Shentun.Peis.ColumnReferencePlugIns.Tests
{
public class ColumnReferencePlugInsAsbitemBaseTest
{
private readonly ITestOutputHelper _output;
public ColumnReferencePlugInsAsbitemBaseTest(ITestOutputHelper testOutputHelper)
{
_output = testOutputHelper;
}
[Fact]
public async Task GetCodeValues()
{
string configParm;
string filePath = DirectoryHelper.GetAppDirectory() + "/appsettings.json";
configParm = File.ReadAllText(filePath);
var columnReferencePlugInsBase = new ColumnReferencePlugInsBase(configParm);
var items = await columnReferencePlugInsBase.GetCodeValues();
foreach ( var item in items )
{
_output.WriteLine(item.Code + item.DisplayName);
}
}
[Fact]
public async Task GetInterfaceCodeValues()
{
string configParm;
string filePath = DirectoryHelper.GetAppDirectory() + "/appsettings.json";
configParm = File.ReadAllText(filePath);
var columnReferencePlugInsBase = new ColumnReferencePlugInsDbBase(configParm);
var items = await columnReferencePlugInsBase.GetInterfaceCodeValues();
foreach (var item in items)
{
_output.WriteLine(item.Code + item.DisplayName);
}
}
}
}

51
test/Shentun.Peis.ColumnReference.Tests/Shentun.Peis.ColumnReferencePlugIns.Tests.csproj

@ -0,0 +1,51 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<ItemGroup>
<None Remove="appsettings.Development.json" />
<None Remove="appsettings.json" />
<None Remove="appsettings.secrets.json" />
</ItemGroup>
<ItemGroup>
<Content Include="appsettings.Development.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Include="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Include="appsettings.secrets.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="3.2.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Shentun.ColumnReferencePlugIns\Shentun.Peis.ColumnReferencePlugIns.csproj" />
</ItemGroup>
<ItemGroup>
<Using Include="Xunit" />
</ItemGroup>
</Project>

12
test/Shentun.Peis.ColumnReference.Tests/UnitTest1.cs

@ -0,0 +1,12 @@
namespace Shentun.Peis.ColumnReference.Tests
{
public class UnitTest1
{
[Fact]
public void Test1()
{
}
}
}

2
test/Shentun.Peis.ColumnReference.Tests/appsettings.Development.json

@ -0,0 +1,2 @@
{
}

45
test/Shentun.Peis.ColumnReference.Tests/appsettings.json

@ -0,0 +1,45 @@
{
"App": {
"SelfUrl": "http://localhost:9530",
"ClientUrl": "http://localhost:9530",
"CorsOrigins": "https://*.Peis.com,http://localhost:4200,http://localhost:9530,http://192.168.1.108:9530,http://localhost:8080,http://localhost:8081",
"RedirectAllowedUrls": "http://localhost:9530",
"Sql": "select id::varchar as Code ,display_name as DisplayName ,simple_code as SimpleCode ,display_order as DisplayOrder from asbitem"
},
"Interface": {
"DbType": "SqlServer",
"ConnectionStrings": "Server=.;Database=mypeis_wyy;User ID=sa;Password=shentun;Application Name=mypeis;Encrypt=False;TrustServerCertificate=True",
"Sql": "select asbitem_id as Code ,asbitem_name as DisplayName from asbitem"
},
"ConnectionStrings": {
"Default": "Host=140.143.162.39;Port=5432;Database=ShentunPeis070703;User ID=postgres;Password=shentun123;"
//"Default": "Host=localhost;Port=5432;Database=ShentunPeis1218;User ID=postgres;Password=wxd123;"
},
"AuthServer": {
"Authority": "http://localhost:9530",
"RequireHttpsMetadata": "false",
"SwaggerClientId": "localhost_Swagger"
},
"StringEncryption": {
"DefaultPassPhrase": "ROCjBbDQK9rNq82v"
},
"Settings": {
"Abp.Identity.Password.RequireDigit": false,
"Abp.Identity.Password.RequireLowercase": false,
"Abp.Identity.Password.RequireUppercase": false,
"Abp.Identity.Password.RequireNonAlphanumeric": false,
"Abp.Identity.Password.RequiredLength": 6
},
"HostUrl": {
"ApiUrl": "http://140.143.162.39:9529"
},
"VirtualPath": {
"RealPath": "F:\\testimg",
"RequestPath": "/CheckPictureImg",
"Alias": "CheckPictureImg"
},
"AdminId": "3a0c4180-107c-0c89-b25b-0bd34666dcec",
"PeisReportPdfPath": "E:\\mypeis\\PeisReportPdf\\"
}

2
test/Shentun.Peis.ColumnReference.Tests/appsettings.secrets.json

@ -0,0 +1,2 @@
{
}
Loading…
Cancel
Save