优化扩展函数

This commit is contained in:
kevin
2021-05-20 10:41:39 +08:00
parent 61b343bf41
commit bbafa4e9d8
2 changed files with 50 additions and 48 deletions
+47 -45
View File
@@ -189,40 +189,6 @@ namespace OSS.Common.BasicMos.Resp
return string.IsNullOrEmpty(errMsg) ? res : res.WithErrMsg(errMsg);
}
/// <summary>
/// 处理响应转化
/// </summary>
/// <param name="res"></param>
/// <param name="tPara"></param>
/// <param name="func"></param>
/// <param name="errMsg">如果 tPara.IsSuccess()=false,且errMsg不为空,取errMsg,否则取 tPara.msg </param>
/// <typeparam name="TRes"></typeparam>
/// <typeparam name="TPara"></typeparam>
/// <returns></returns>
public static Resp<TRes> WithResp<TRes, TPara>(this Resp<TRes> res, Resp<TPara> tPara,
Func<TPara, TRes> func,string errMsg = null)
{
res.data = func.Invoke(tPara.data);
return res.WithResp(tPara, errMsg);
}
/// <summary>
/// 处理响应转化
/// </summary>
/// <typeparam name="TRes"></typeparam>
/// <typeparam name="TPara"></typeparam>
/// <param name="res"></param>
/// <param name="tPara"></param>
/// <param name="func"></param>
/// <param name="errMsg">不成功时的消息内容,如果为空,消息内容取 tPara.msg</param>
/// <returns></returns>
public static ListResp<TRes> WithResp<TRes, TPara>(this ListResp<TRes> res, ListResp<TPara> tPara,
Func<TPara, TRes> func, string errMsg = null)
{
res.data = tPara.data?.Select(func).ToList();
return res.WithResp(tPara, errMsg);
}
/// <summary>
/// 处理响应转化
/// </summary>
@@ -238,29 +204,65 @@ namespace OSS.Common.BasicMos.Resp
return string.IsNullOrEmpty(errMsg) ? res : res.WithErrMsg(errMsg);
}
#region 附带 data 转化处理
/// <summary>
/// 处理响应转化
/// </summary>
/// <param name="res"></param>
/// <param name="tPara"></param>
/// <param name="func"></param>
/// <param name="isNullCheck">是否检查参数 data 为空</param>
/// <param name="convertFunc"></param>
/// <param name="errMsg">如果 tPara.IsSuccess()=false,且errMsg不为空,取errMsg,否则取 tPara.msg </param>
/// <param name="isNullCheck">调用方法(convertFunc)之前是否检查数据是否为空</param>
/// <typeparam name="TRes"></typeparam>
/// <typeparam name="TPara"></typeparam>
/// <returns></returns>
[Obsolete]
public static Resp<TRes> WithResp<TRes, TPara>(this Resp<TRes> res, Resp<TPara> tPara,
Func<TPara, TRes> func, bool isNullCheck = true)
Func<TPara, TRes> convertFunc, string errMsg, bool isNullCheck = true)
{
WithResp(res, tPara.sys_ret, tPara.ret, tPara.msg);
if (isNullCheck && tPara.data == null)
return res ;
res.data = func.Invoke(tPara.data);
return res;
if ((isNullCheck && tPara.data != null)
|| !isNullCheck)
{
res.data = convertFunc.Invoke(tPara.data);
}
return res.WithResp(tPara, errMsg);
}
/// <summary>
/// 处理响应转化
/// </summary>
/// <param name="res"></param>
/// <param name="tPara"></param>
/// <param name="convertFunc"></param>
/// <param name="isNullCheck">调用方法(convertFunc)之前是否检查数据是否为空</param>
/// <typeparam name="TRes"></typeparam>
/// <typeparam name="TPara"></typeparam>
/// <returns></returns>
public static Resp<TRes> WithResp<TRes, TPara>(this Resp<TRes> res, Resp<TPara> tPara,
Func<TPara, TRes> convertFunc, bool isNullCheck=true)
{
return res.WithResp(tPara, convertFunc, null, isNullCheck);
}
/// <summary>
/// 处理响应转化
/// </summary>
/// <typeparam name="TRes"></typeparam>
/// <typeparam name="TPara"></typeparam>
/// <param name="res"></param>
/// <param name="tPara"></param>
/// <param name="convertFunc"></param>
/// <param name="errMsg">不成功时的消息内容,如果为空,消息内容取 tPara.msg</param>
/// <returns></returns>
public static ListResp<TRes> WithResp<TRes, TPara>(this ListResp<TRes> res, ListResp<TPara> tPara,
Func<TPara, TRes> convertFunc, string errMsg = null)
{
res.data = tPara.data?.Select(convertFunc).ToList();
return res.WithResp(tPara, errMsg);
}
#endregion
#endregion
/// <summary>
+3 -3
View File
@@ -3,7 +3,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
<Version>2.3.3</Version>
<Version>2.3.3.2</Version>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<Authors>OSSCore</Authors>
<Company>OSSCore</Company>
@@ -14,8 +14,8 @@
<RepositoryUrl>https://github.com/KevinWG/OSS.Common</RepositoryUrl>
<PackageReleaseNotes>添加结果处理扩展函数</PackageReleaseNotes>
<AssemblyVersion>2.3.3.0</AssemblyVersion>
<FileVersion>2.3.3.0</FileVersion>
<AssemblyVersion>2.3.3.2</AssemblyVersion>
<FileVersion>2.3.3.2</FileVersion>
<PackageLicenseUrl>https://github.com/KevinWG/OSS.Common/blob/master/LICENSE</PackageLicenseUrl>