郑勃旭 2 years ago
parent
commit
af51c289b7
  1. 27
      be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs

27
be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs

@ -332,13 +332,13 @@ public abstract class SfsCrudWithDetailsAppServiceBase<TEntity, TEntityDto, TReq
/// </summary> /// </summary>
[HttpPost("import")] [HttpPost("import")]
[Consumes("multipart/form-data")] [Consumes("multipart/form-data")]
[UnitOfWork] //[UnitOfWork]
public virtual async Task<IActionResult> ImportAsync([FromForm] SfsImportRequestInput requestInput, [Required] IFormFile file) public virtual async Task<IActionResult> ImportAsync([FromForm] SfsImportRequestInput requestInput, [Required] IFormFile file)
{ {
using var ms = new MemoryStream(); using var ms = new MemoryStream();
await file.OpenReadStream().CopyToAsync(ms).ConfigureAwait(false); await file.OpenReadStream().CopyToAsync(ms).ConfigureAwait(false);
var inputFileBytes = ms.GetAllBytes(); var inputFileBytes = ms.GetAllBytes();
var result = await ImportInternalAsync(requestInput, inputFileBytes); var result = await ImportInternalAsync(requestInput, inputFileBytes).ConfigureAwait(false);
var bytes = result.FileContents; var bytes = result.FileContents;
result.FileContents = null; result.FileContents = null;
@ -511,7 +511,7 @@ public abstract class SfsCrudWithDetailsAppServiceBase<TEntity, TEntityDto, TReq
/// <summary> /// <summary>
/// 导入数据具体实现,可重写 /// 导入数据具体实现,可重写
/// </summary> /// </summary>
[UnitOfWork] //[UnitOfWork]
protected virtual async Task<SfsImportResult> ImportInternalAsync(SfsImportRequestInput requestInput, byte[] inputFileBytes) protected virtual async Task<SfsImportResult> ImportInternalAsync(SfsImportRequestInput requestInput, byte[] inputFileBytes)
{ {
IList<TImportInput> modelList = null; IList<TImportInput> modelList = null;
@ -684,12 +684,23 @@ public abstract class SfsCrudWithDetailsAppServiceBase<TEntity, TEntityDto, TReq
}; };
var addList = dict.Where(p => p.Value == EntityState.Added).Select(p => p.Key).ToList(); var addList = dict.Where(p => p.Value == EntityState.Added).Select(p => p.Key).ToList();
await context.BulkInsertOrUpdateAsync(addList, bulkConfig).ConfigureAwait(false); try
await context.BulkInsertAsync(list).ConfigureAwait(false); {
await context.BulkInsertOrUpdateAsync(addList, bulkConfig).ConfigureAwait(false);
await context.BulkInsertAsync(list).ConfigureAwait(false);
//await _repository.InsertManyAsync(addList).ConfigureAwait(true);
//await _repository.UpdateManyAsync(dict.Where(p => p.Value == EntityState.Modified).Select(p => p.Key)).ConfigureAwait(false);
await LocalEventBus.PublishAsync(new SfsCreatedEntityEventData<List<TEntity>>(addList), false).ConfigureAwait(false);
}
catch (Exception ex)
{
await context.Database.RollbackTransactionAsync().ConfigureAwait(false);
Logger.LogDebug($"{typeof(TEntity).Name} Created Event:{ex.Message}", null);
Console.WriteLine(ex.Source);
throw;
}
//await _repository.InsertManyAsync(addList).ConfigureAwait(true);
//await _repository.UpdateManyAsync(dict.Where(p => p.Value == EntityState.Modified).Select(p => p.Key)).ConfigureAwait(false);
await PublishCreatedAsync(addList).ConfigureAwait(false);
} }
} }

Loading…
Cancel
Save