From 7d7256281e1cd9b81ad2dbccada4c69db5b01db0 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Thu, 26 Oct 2023 16:17:57 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E7=A7=BB=E7=AE=B1=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChangeBoxRecordQueryRequest.cs | 6 +-- .../ChangeBoxRecordQueryResponse.cs | 48 ++++++++++++++++++- src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs | 10 ++++ .../Entitys/TakeStockDetails.cs | 5 -- .../ChangeBoxRecordRepositories.cs | 33 ++++++++++++- 5 files changed, 91 insertions(+), 11 deletions(-) diff --git a/src/WMS.Web.Core/Dto/ChangeBoxRecord/ChangeBoxRecordQueryRequest.cs b/src/WMS.Web.Core/Dto/ChangeBoxRecord/ChangeBoxRecordQueryRequest.cs index 20391543..7d757271 100644 --- a/src/WMS.Web.Core/Dto/ChangeBoxRecord/ChangeBoxRecordQueryRequest.cs +++ b/src/WMS.Web.Core/Dto/ChangeBoxRecord/ChangeBoxRecordQueryRequest.cs @@ -20,15 +20,15 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord /// /// 仓库 /// - public int StockId { get; set; } + public int? StockId { get; set; } /// /// 原仓位ID /// - public int SrcSubStockId { get; set; } + public int? SrcSubStockId { get; set; } /// /// 现仓位ID /// - public int DestSubStockId { get; set; } + public int? DestSubStockId { get; set; } /// /// 操作人 /// diff --git a/src/WMS.Web.Core/Dto/ChangeBoxRecord/ChangeBoxRecordQueryResponse.cs b/src/WMS.Web.Core/Dto/ChangeBoxRecord/ChangeBoxRecordQueryResponse.cs index b828cbc3..e468e6ec 100644 --- a/src/WMS.Web.Core/Dto/ChangeBoxRecord/ChangeBoxRecordQueryResponse.cs +++ b/src/WMS.Web.Core/Dto/ChangeBoxRecord/ChangeBoxRecordQueryResponse.cs @@ -4,8 +4,54 @@ using System.Text; namespace WMS.Web.Core.Dto.ChangeBoxRecord { + /// + /// 改箱列表 + /// public class ChangeBoxRecordQueryInfoResponse { - + /// + /// 物料名称 + /// + public string MaterialName { get; set; } + /// + /// 物料编码 + /// + public string MaterialNumber { get; set; } + /// + /// 物料规格型号 + /// + public string Specifications { get; set; } + /// + /// 仓库 + /// + public string Stock { get; set; } + /// + /// 序列号 + /// + public string SerialNumber { get; set; } + /// + /// 原箱子 + /// + public string SrcBox { get; set; } + /// + /// 目标箱子 + /// + public string DestBox { get; set; } + /// + /// 原仓位 + /// + public string SrcSubStock { get; set; } + /// + /// 目标仓位 + /// + public string DestSubStock { get; set; } + /// + /// 操作人 + /// + public string Creator { get; set; } + /// + /// 操作时间 + /// + public DateTime CreateTime { get; set; } = DateTime.Now; } } diff --git a/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs b/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs index 4d97efa6..70656bf4 100644 --- a/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs +++ b/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs @@ -25,6 +25,16 @@ namespace WMS.Web.Domain.Entitys [Column("MaterialId")] public int MaterialId { get; set; } /// + /// 仓库Id + /// + [Column("StockId")] + public int StockId { get; set; } + /// + /// 序列号 + /// + [Column("SerialNumber")] + public string SerialNumber { get; set; } + /// /// 原箱子ID /// [Column("SrcBoxId")] diff --git a/src/WMS.Web.Domain/Entitys/TakeStockDetails.cs b/src/WMS.Web.Domain/Entitys/TakeStockDetails.cs index d28a1ee6..93921bcf 100644 --- a/src/WMS.Web.Domain/Entitys/TakeStockDetails.cs +++ b/src/WMS.Web.Domain/Entitys/TakeStockDetails.cs @@ -31,11 +31,6 @@ namespace WMS.Web.Domain.Entitys [Column("BoxId")] public int BoxId { get; set; } /// - /// 序号 - /// - [Column("Seq")] - public int Seq { get; set; } - /// /// 物料ID /// [Column("MaterialId")] diff --git a/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs b/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs index 321ca5c5..90b1c05b 100644 --- a/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs +++ b/src/WMS.Web.Repositories/ChangeBoxRecordRepositories.cs @@ -1,7 +1,9 @@ using AutoMapper; +using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Storage; using System; using System.Collections.Generic; +using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.Web.Core.Dto; @@ -64,9 +66,36 @@ namespace WMS.Web.Repositories /// /// /// - public Task<(List list, int total)> GetListAsync(ChangeBoxRecordQueryRequest dto) + public async Task<(List list, int total)> GetListAsync(ChangeBoxRecordQueryRequest dto) { - throw new NotImplementedException(); + var query = _context.ChangeBoxRecord + .OrderByDescending(o => o.Id) + .Where(adv => 1 == 1); + + if (dto.CreateBeginDate != null) + query = query.Where(w => w.CreateTime >= dto.CreateBeginDate); + if (dto.CreateEndDate != null) + query = query.Where(w => w.CreateTime <= dto.CreateEndDate); + //组装 + int total = await query.CountAsync(); + var list = await query.Select(s => new ChangeBoxRecordQueryInfoResponse() + { + #region dto组装 + MaterialName = "", + MaterialNumber = "", + Specifications = "", + Stock = "", + SerialNumber = "", + SrcBox = "", + DestBox = "", + SrcSubStock = "", + DestSubStock = "", + Creator = "", + CreateTime =s.CreateTime + #endregion + + }).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync(); + return (list, total); } } } From 5f4e00a4367c32a34afc36a0b9f2f0afebab612b Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Thu, 26 Oct 2023 16:52:24 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=94=B9=E7=AE=B1=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/ChangeBoxRecordController.cs | 23 ++++- src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml | 7 ++ src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 95 +++++++++++++++++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 39 +++++++- .../SaveChangeBoxRecordRequest.cs | 44 +++++++++ src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs | 9 ++ .../IService/IChangeMoveBoxService.cs | 20 ++++ .../Mappers/ChangeBoxRecordMapper.cs | 20 ++++ .../Services/ChangeMoveBoxService.cs | 44 +++++++++ src/WMS.Web.Domain/Values/ResultCodes.cs | 4 + .../DependencyInjection/AppBuilder.cs | 5 + 11 files changed, 303 insertions(+), 7 deletions(-) create mode 100644 src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs create mode 100644 src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs create mode 100644 src/WMS.Web.Domain/Mappers/ChangeBoxRecordMapper.cs create mode 100644 src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs diff --git a/src/WMS.Web.Api/Controllers/ChangeBoxRecordController.cs b/src/WMS.Web.Api/Controllers/ChangeBoxRecordController.cs index 3edb9356..186905b3 100644 --- a/src/WMS.Web.Api/Controllers/ChangeBoxRecordController.cs +++ b/src/WMS.Web.Api/Controllers/ChangeBoxRecordController.cs @@ -8,7 +8,9 @@ using System.Threading.Tasks; using WMS.Web.Core.Dto; using WMS.Web.Core.Dto.ChangeBoxRecord; using WMS.Web.Core.Internal.Results; +using WMS.Web.Domain.Entitys; using WMS.Web.Domain.Infrastructure; +using WMS.Web.Domain.IService; using WMS.Web.Domain.IService.Public; using WMS.Web.Domain.Values; @@ -24,11 +26,13 @@ namespace WMS.Web.Api.Controllers private readonly IMapper _mapper; private readonly ILoginService _loginService; private readonly IChangeBoxRecordRepositories _repositories; - public ChangeBoxRecordController(IMapper mapper, ILoginService loginService, IChangeBoxRecordRepositories repositories) + private readonly IChangeMoveBoxService _changeMoveBoxService; + public ChangeBoxRecordController(IMapper mapper, ILoginService loginService, IChangeBoxRecordRepositories repositories, IChangeMoveBoxService changeMoveBoxService) { _mapper = mapper; _loginService = loginService; _repositories = repositories; + _changeMoveBoxService = changeMoveBoxService; } /// /// 列表 @@ -44,8 +48,23 @@ namespace WMS.Web.Api.Controllers return ResultPagedList.ReFailure(ResultCodes.Token_Invalid_Error); var (list, count) = await _repositories.GetListAsync(dto); - var result = ResultPagedList.ReSuccess(list,count); + var result = ResultPagedList.ReSuccess(list, count); return result; } + /// + /// 保存 + /// + /// + /// + [HttpPost] + [Route("Save")] + public async Task Save(SaveChangeBoxRecordRequest dto) + { + var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); + if (loginInfo == null || loginInfo.UserInfo == null) + return Result.ReFailure(ResultCodes.Token_Invalid_Error); + + return await _changeMoveBoxService.Save(dto, loginInfo); + } } } diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml index f52ae928..fa5575e3 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml @@ -16,6 +16,13 @@ + + + 保存 + + + + 登录接口 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 20913220..2ab86116 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -130,6 +130,101 @@ 操作时间 结束 + + + 改箱列表 + + + + + 物料名称 + + + + + 物料编码 + + + + + 物料规格型号 + + + + + 仓库 + + + + + 序列号 + + + + + 原箱子 + + + + + 目标箱子 + + + + + 原仓位 + + + + + 目标仓位 + + + + + 操作人 + + + + + 操作时间 + + + + + 保存改箱 + + + + + 物料ID + + + + + 仓库Id + + + + + 原箱子ID + + + + + 目标箱子ID + + + + + 原仓位ID + + + + + 目标仓位ID + + ERP:单据查询-dto diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index edaaaa7c..6afd41df 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -149,6 +149,16 @@ 物料ID + + + 仓库Id + + + + + 序列号 + + 原箱子ID @@ -179,6 +189,12 @@ 操作时间 + + + 创建 + + + wms入库单 @@ -764,11 +780,6 @@ 单据头Id - - - 序号 - - 物料ID @@ -819,6 +830,11 @@ wms入库单-仓储接口 + + + 改箱 移箱服务 + + erp:单据查询-采购入库单 @@ -1011,6 +1027,11 @@ mapper映射 + + + 改箱 + + 集合映射 @@ -1117,6 +1138,9 @@ 私钥 + + 改箱 移箱服务 + erp数据交互服务 @@ -1715,6 +1739,11 @@ 无效 + + + 数据操作失败 + + 对接单点的接口方法-枚举 diff --git a/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs b/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs new file mode 100644 index 00000000..3aa186f7 --- /dev/null +++ b/src/WMS.Web.Core/Dto/ChangeBoxRecord/SaveChangeBoxRecordRequest.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Text; + +namespace WMS.Web.Core.Dto.ChangeBoxRecord +{ + /// + /// 保存改箱 + /// + public class SaveChangeBoxRecordRequest + { + /// + /// 物料ID + /// + [Required(ErrorMessage = "物料不能为空")] + public int MaterialId { get; set; } + /// + /// 仓库Id + /// + [Required(ErrorMessage = "仓库不能为空")] + public int StockId { get; set; } + /// + /// 原箱子ID + /// + [Required(ErrorMessage = "原箱子不能为空")] + public int SrcBoxId { get; set; } + /// + /// 目标箱子ID + /// + [Required(ErrorMessage = "目标箱子不能为空")] + public int DestBoxId { get; set; } + /// + /// 原仓位ID + /// + [Required(ErrorMessage = "原仓位不能为空")] + public int SrcSubStockId { get; set; } + /// + /// 目标仓位ID + /// + [Required(ErrorMessage = "目标仓位不能为空")] + public int DestSubStockId { get; set; } + } +} diff --git a/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs b/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs index 70656bf4..e28d5b20 100644 --- a/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs +++ b/src/WMS.Web.Domain/Entitys/ChangeBoxRecord.cs @@ -64,5 +64,14 @@ namespace WMS.Web.Domain.Entitys /// [Column("CreateTime")] public DateTime CreateTime { get; set; } = DateTime.Now; + /// + /// 创建 + /// + /// + public void Create(int creatorId) + { + this.CreatorId = creatorId; + this.CreateTime = DateTime.Now; + } } } diff --git a/src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs b/src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs new file mode 100644 index 00000000..0c8770b8 --- /dev/null +++ b/src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs @@ -0,0 +1,20 @@ + +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using WMS.Web.Core.Dto.ChangeBoxRecord; +using WMS.Web.Core.Dto.Login; +using WMS.Web.Core.Internal.Results; +using WMS.Web.Domain.Services; + +namespace WMS.Web.Domain.IService +{ + /// + /// 改箱 移箱服务 + /// + public interface IChangeMoveBoxService + { + Task Save(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo); + } +} diff --git a/src/WMS.Web.Domain/Mappers/ChangeBoxRecordMapper.cs b/src/WMS.Web.Domain/Mappers/ChangeBoxRecordMapper.cs new file mode 100644 index 00000000..95a4947a --- /dev/null +++ b/src/WMS.Web.Domain/Mappers/ChangeBoxRecordMapper.cs @@ -0,0 +1,20 @@ +using AutoMapper; +using System; +using System.Collections.Generic; +using System.Text; +using WMS.Web.Core.Dto.ChangeBoxRecord; +using WMS.Web.Domain.Entitys; + +namespace WMS.Web.Domain.Mappers +{ + /// + /// 改箱 + /// + public class ChangeBoxRecordMapper : Profile + { + public ChangeBoxRecordMapper() + { + CreateMap(); + } + } +} diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs new file mode 100644 index 00000000..50f0f904 --- /dev/null +++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs @@ -0,0 +1,44 @@ +using AutoMapper; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using WMS.Web.Core.Dto.ChangeBoxRecord; +using WMS.Web.Core.Dto.Login; +using WMS.Web.Core.Internal.Results; +using WMS.Web.Domain.Entitys; +using WMS.Web.Domain.Infrastructure; +using WMS.Web.Domain.IService; +using WMS.Web.Domain.IService.Public; +using WMS.Web.Domain.Values; + +namespace WMS.Web.Domain.Services +{ + ///改箱 移箱服务 + public class ChangeMoveBoxService : IChangeMoveBoxService + { + private readonly IMapper _mapper; + private readonly ILoginService _loginService; + private readonly IChangeBoxRecordRepositories _changeBoxRecordRepositories; + public ChangeMoveBoxService(IMapper mapper, ILoginService loginService, IChangeBoxRecordRepositories changeBoxRecordRepositories) + { + _mapper = mapper; + _loginService = loginService; + _changeBoxRecordRepositories = changeBoxRecordRepositories; + } + + public async Task Save(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo) + { + var entity = _mapper.Map(dto); + entity.Create(loginInfo.UserInfo.StaffId); + + //需要填写序列号 + //需要修改库存 + + entity = await _changeBoxRecordRepositories.Add(entity, true); + if (entity == null) + return Result.ReFailure(ResultCodes.DateWriteError); + return Result.ReSuccess(); + } + } +} diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs index 8d7222ff..50def08b 100644 --- a/src/WMS.Web.Domain/Values/ResultCodes.cs +++ b/src/WMS.Web.Domain/Values/ResultCodes.cs @@ -16,5 +16,9 @@ namespace WMS.Web.Domain.Values /// 无效 /// public static ValueTuple Token_Invalid_Error = (401, "验证Token无效,请重新登录"); + /// + /// 数据操作失败 + /// + public static ValueTuple DateWriteError = (40004, "数据操作失败"); } } diff --git a/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs b/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs index e93d36c5..83c343c0 100644 --- a/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs +++ b/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs @@ -9,9 +9,11 @@ using System.Collections.Generic; using System.IO; using System.Text; using WMS.Web.Core.Help; +using WMS.Web.Domain.IService; using WMS.Web.Domain.IService.Public; using WMS.Web.Domain.Mappers; using WMS.Web.Domain.Options; +using WMS.Web.Domain.Services; using WMS.Web.Domain.Services.Public; namespace WMS.Web.Repositories.DependencyInjection @@ -185,6 +187,9 @@ namespace WMS.Web.Repositories.DependencyInjection Services.AddTransient(); Services.AddTransient(); Services.AddTransient(); + + Services.AddTransient(); + } } } From 526e18a1292d100ae180a262607b0d19889de29a Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Thu, 26 Oct 2023 17:06:35 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BA=8B=E7=89=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ITransactionRepositories.cs | 22 +++++++++ .../Services/ChangeMoveBoxService.cs | 16 ++++++- .../AppBuilderExtensions.cs | 2 + .../TransactionRepositories.cs | 47 +++++++++++++++++++ 4 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 src/WMS.Web.Domain/Infrastructure/ITransactionRepositories.cs create mode 100644 src/WMS.Web.Repositories/TransactionRepositories.cs diff --git a/src/WMS.Web.Domain/Infrastructure/ITransactionRepositories.cs b/src/WMS.Web.Domain/Infrastructure/ITransactionRepositories.cs new file mode 100644 index 00000000..4896a418 --- /dev/null +++ b/src/WMS.Web.Domain/Infrastructure/ITransactionRepositories.cs @@ -0,0 +1,22 @@ +using Microsoft.EntityFrameworkCore.Storage; +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Domain.Infrastructure +{ + public interface ITransactionRepositories + { + /// + /// 获取事务 用来处理即时库存 + /// + /// + IDbContextTransaction GetTransaction(); + + /// + /// 获取事务 用来处理即时库存 + /// + /// + bool CommitTransaction(bool isRollback, IDbContextTransaction transaction); + } +} diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs index 50f0f904..e927a50d 100644 --- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs +++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs @@ -1,4 +1,5 @@ using AutoMapper; +using Microsoft.EntityFrameworkCore.Storage; using System; using System.Collections.Generic; using System.Text; @@ -20,11 +21,14 @@ namespace WMS.Web.Domain.Services private readonly IMapper _mapper; private readonly ILoginService _loginService; private readonly IChangeBoxRecordRepositories _changeBoxRecordRepositories; - public ChangeMoveBoxService(IMapper mapper, ILoginService loginService, IChangeBoxRecordRepositories changeBoxRecordRepositories) + public readonly ITransactionRepositories _transactionRepositories; + public ChangeMoveBoxService(IMapper mapper, ILoginService loginService, + IChangeBoxRecordRepositories changeBoxRecordRepositories, ITransactionRepositories transactionRepositories) { _mapper = mapper; _loginService = loginService; _changeBoxRecordRepositories = changeBoxRecordRepositories; + _transactionRepositories = transactionRepositories; } public async Task Save(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo) @@ -35,9 +39,17 @@ namespace WMS.Web.Domain.Services //需要填写序列号 //需要修改库存 + IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); + bool isRollback = false; + bool isSuccess = true; entity = await _changeBoxRecordRepositories.Add(entity, true); - if (entity == null) + if (entity == null) isRollback = true; + + //提交事务 + isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); + if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); + return Result.ReSuccess(); } } diff --git a/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs b/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs index d69bac59..57141188 100644 --- a/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs +++ b/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs @@ -32,6 +32,8 @@ namespace Microsoft.Extensions.DependencyInjection { services.AddHttpContextAccessor(); + services.AddTransient(); + services.AddTransient(); services.AddTransient(); diff --git a/src/WMS.Web.Repositories/TransactionRepositories.cs b/src/WMS.Web.Repositories/TransactionRepositories.cs new file mode 100644 index 00000000..f674cedb --- /dev/null +++ b/src/WMS.Web.Repositories/TransactionRepositories.cs @@ -0,0 +1,47 @@ +using Microsoft.EntityFrameworkCore.Storage; +using System; +using System.Collections.Generic; +using System.Text; +using WMS.Web.Domain.Infrastructure; +using WMS.Web.Repositories.Configuration; + +namespace WMS.Web.Repositories +{ + public class TransactionRepositories: ITransactionRepositories + { + private RepositoryDbContext _context; + + + public TransactionRepositories(RepositoryDbContext context) + { + _context = context; + } + public IDbContextTransaction GetTransaction() + { + return _context.Database.BeginTransaction(); + } + + public bool CommitTransaction(bool isRollback, IDbContextTransaction transaction) + { + try + { + if (transaction == null) + return true; + + if (isRollback) + { + transaction.Rollback(); + return false; + } + transaction.Commit(); + } + catch (Exception ex) + { + transaction.Rollback(); + return false; + } + return true; + } + + } +}