92 lines
4.5 KiB
C#
Raw Normal View History

2024-05-16 13:30:30 +08:00

using Infrastructure.Extensions;
using Microsoft.AspNetCore.Http;
2024-05-21 11:09:04 +08:00
using Microsoft.AspNetCore.Http.HttpResults;
2024-05-16 13:30:30 +08:00
using System;
using System.Reflection;
namespace Infrastructure
{
public static class EntityExtension
{
public static TSource ToCreate<TSource>(this TSource source, HttpContext? context = null)
{
var types = source?.GetType();
if (types == null || context == null) return source;
BindingFlags flag = BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance;
types.GetProperty("CreateTime", flag)?.SetValue(source, DateTime.Now, null);
2024-05-21 11:09:04 +08:00
types.GetProperty("CreatedTime", flag)?.SetValue(source, DateTime.Now, null);
2024-05-16 13:30:30 +08:00
types.GetProperty("AddTime", flag)?.SetValue(source, DateTime.Now, null);
types.GetProperty("CreateBy", flag)?.SetValue(source, context.GetName(), null);
2024-05-21 11:09:04 +08:00
types.GetProperty("CreatedBy", flag)?.SetValue(source, context.GetName(), null);
2024-05-16 13:30:30 +08:00
types.GetProperty("Create_by", flag)?.SetValue(source, context.GetName(), null);
types.GetProperty("UserId", flag)?.SetValue(source, context.GetUId(), null);
return source;
}
2024-07-05 16:55:06 +08:00
/// <summary>
/// 用昵称创造
/// </summary>
/// <typeparam name="TSource"></typeparam>
/// <param name="source"></param>
/// <param name="context"></param>
/// <returns></returns>
public static TSource ToCreate_nickName<TSource>(this TSource source, HttpContext? context = null)
{
var types = source?.GetType();
if (types == null || context == null) return source;
BindingFlags flag = BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance;
types.GetProperty("CreateTime", flag)?.SetValue(source, DateTime.Now, null);
types.GetProperty("CreatedTime", flag)?.SetValue(source, DateTime.Now, null);
types.GetProperty("AddTime", flag)?.SetValue(source, DateTime.Now, null);
types.GetProperty("CreateBy", flag)?.SetValue(source, context.GetNickName(), null);
types.GetProperty("CreatedBy", flag)?.SetValue(source, context.GetNickName(), null);
types.GetProperty("Create_by", flag)?.SetValue(source, context.GetNickName(), null);
types.GetProperty("UserId", flag)?.SetValue(source, context.GetNickName(), null);
return source;
}
2024-05-16 13:30:30 +08:00
public static TSource ToUpdate<TSource>(this TSource source, HttpContext? context = null)
{
var types = source?.GetType();
if (types == null || context == null) return source;
BindingFlags flag = BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance;
types.GetProperty("UpdateTime", flag)?.SetValue(source, DateTime.Now, null);
2024-05-21 11:09:04 +08:00
types.GetProperty("UpdatedTime", flag)?.SetValue(source, DateTime.Now, null);
2024-05-16 13:30:30 +08:00
types.GetProperty("Update_time", flag)?.SetValue(source, DateTime.Now, null);
2024-05-21 11:09:04 +08:00
types.GetProperty("UpdateBy", flag)?.SetValue(source, context.GetName(), null);
types.GetProperty("UpdatedBy", flag)?.SetValue(source, context.GetName(), null);
2024-05-16 13:30:30 +08:00
types.GetProperty("Update_by", flag)?.SetValue(source, context.GetName(), null);
return source;
}
2024-07-05 16:55:06 +08:00
/// <summary>
/// 用昵称更新
/// </summary>
/// <typeparam name="TSource"></typeparam>
/// <param name="source"></param>
/// <param name="context"></param>
/// <returns></returns>
public static TSource ToUpdate_nickName<TSource>(this TSource source, HttpContext? context = null)
{
var types = source?.GetType();
if (types == null || context == null) return source;
BindingFlags flag = BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance;
types.GetProperty("UpdateTime", flag)?.SetValue(source, DateTime.Now, null);
types.GetProperty("UpdatedTime", flag)?.SetValue(source, DateTime.Now, null);
types.GetProperty("Update_time", flag)?.SetValue(source, DateTime.Now, null);
types.GetProperty("UpdateBy", flag)?.SetValue(source, context.GetNickName(), null);
types.GetProperty("UpdatedBy", flag)?.SetValue(source, context.GetNickName(), null);
types.GetProperty("Update_by", flag)?.SetValue(source, context.GetNickName(), null);
2024-05-16 13:30:30 +08:00
2024-07-05 16:55:06 +08:00
return source;
}
2024-05-16 13:30:30 +08:00
}
}