EntityExtension.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //using Microsoft.AspNetCore.Http;
  2. //using Snowflake.Core;
  3. using System;
  4. namespace ZR.Admin.WebApi.Extensions
  5. {
  6. public static class EntityExtension
  7. {
  8. public static TSource ToCreate<TSource>(this TSource source, HttpContext? context = null)
  9. {
  10. var types = source?.GetType();
  11. if (types == null) return source;
  12. if (types.GetProperty("CreateTime") != null)
  13. {
  14. types.GetProperty("CreateTime")?.SetValue(source, DateTime.Now, null);
  15. }
  16. if (types.GetProperty("AddTime") != null)
  17. {
  18. types.GetProperty("AddTime")?.SetValue(source, DateTime.Now, null);
  19. }
  20. if (types.GetProperty("UpdateTime") != null)
  21. {
  22. types.GetProperty("UpdateTime")?.SetValue(source, DateTime.Now, null);
  23. }
  24. if (types.GetProperty("Create_by") != null && context != null)
  25. {
  26. types.GetProperty("Create_by")?.SetValue(source, context.GetName(), null);
  27. }
  28. if (types.GetProperty("Create_By") != null && context != null)
  29. {
  30. types.GetProperty("Create_By")?.SetValue(source, context.GetName(), null);
  31. }
  32. if (types.GetProperty("CreateBy") != null && context != null)
  33. {
  34. types.GetProperty("CreateBy")?.SetValue(source, context.GetName(), null);
  35. }
  36. if (types.GetProperty("UserId") != null && context != null)
  37. {
  38. types.GetProperty("UserId")?.SetValue(source, context.GetUId(), null);
  39. }
  40. return source;
  41. }
  42. public static TSource ToUpdate<TSource>(this TSource source, HttpContext? context = null)
  43. {
  44. var types = source?.GetType();
  45. if (types == null) return source;
  46. if (types.GetProperty("UpdateTime") != null)
  47. {
  48. types.GetProperty("UpdateTime")?.SetValue(source, DateTime.Now, null);
  49. }
  50. if (types.GetProperty("Update_time") != null)
  51. {
  52. types.GetProperty("Update_time")?.SetValue(source, DateTime.Now, null);
  53. }
  54. if (types.GetProperty("UpdateBy") != null)
  55. {
  56. types.GetProperty("UpdateBy")?.SetValue(source, context?.GetName(), null);
  57. }
  58. if (types.GetProperty("Update_by") != null)
  59. {
  60. types.GetProperty("Update_by")?.SetValue(source, context?.GetName(), null);
  61. }
  62. return source;
  63. }
  64. }
  65. }