You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
2.9 KiB
C#

using DS.Module.SqlSugar;
namespace Ds.WMS.Finance.MediatR.handlers
{
/// <summary>
/// 具体的业务逻辑
/// </summary>
public class GetCostBasicHandler : IRequestHandler<CostExchangeRateCommand, CurrencyDto>
{
private readonly DsDataAppService<Code_Currency> _db;
public GetCostBasicHandler(DsDataAppService<Code_Currency> db)
{
_db = db;
}
//private readonly ISqlSugarClient _db;
//public GetCostBasicHandler(ISqlSugarClient db)
//{
// _db = db;
//}
/// <summary>
/// 具体的业务逻辑
/// </summary>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
async Task<CurrencyDto> IRequestHandler<CostExchangeRateCommand, CurrencyDto>.Handle(CostExchangeRateCommand request, CancellationToken cancellationToken)
{
//var list = await _db.Queryable<Code_Currency>()
// .Where(x => x.Id == request.Id)
// .Select<CurrencyDto>()
// .FirstAsync();
// 使用 QueryForOneEntity<TResult> 方法
var list = await _db.QueryForOneEntity<CurrencyDto>(x => x.Id == request.Id);
return await Task.FromResult(list);
}
}
/// <summary>
/// 添加
/// </summary>
public class AddCostBasicHandler : IRequestHandler<CostExchangeForAddCommand, bool>
{
private readonly ISqlSugarClient _db;
public AddCostBasicHandler(ISqlSugarClient db)
{
_db = db;
}
public async Task<bool> Handle(CostExchangeForAddCommand request, CancellationToken cancellationToken)
{
var list = await _db.Insertable<Code_Currency>(new Code_Currency()
{
CodeName = request.CodeName,
DefaultRate = request.DefaultRate,
Description = request.Description,
FinanceSoftCodes = request.FinanceSoftCodes,
Name = request.Name
}).ExecuteCommandAsync() > 0;
return await Task.FromResult(list);
}
}
/// <summary>
/// 删除
/// </summary>
public class DelCostBasicHandler : IRequestHandler<CostExchangeForDelCommand, bool>
{
private readonly ISqlSugarClient _db;
public DelCostBasicHandler(ISqlSugarClient db)
{
_db = db;
}
public async Task<bool> Handle(CostExchangeForDelCommand request, CancellationToken cancellationToken)
{
var list = await _db.Updateable<Code_Currency>()
.Where(p => p.Id.Equals(request.Id))
.IgnoreColumns(true)
.SetColumns(p => p.DsIsDel == true)
.ExecuteCommandAsync() > 0;
return await Task.FromResult(list);
}
}
}