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

LuFieldsExpressionsLuMetadataDboLuMetadata.cs 1.5KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using System.Linq.Expressions;
  3. using Luticate2.Auth.Business.Fields;
  4. using Luticate2.Auth.Business.FieldsExpressions;
  5. using Luticate2.Auth.DataAccess.Models;
  6. using Luticate2.Auth.Dbo.Auth;
  7. using Luticate2.Auth.Dbo.Fields;
  8. using Luticate2.Auth.Dbo.Result;
  9. namespace Luticate2.Auth.Business.Auth.FieldsExpressions
  10. {
  11. public class LuFieldsExpressionsLuMetadataDboLuMetadata : LuFieldsExpressions<LuObjectsMetadataDbo, LuObjectsMetadata>
  12. {
  13. public LuFieldsExpressionsLuMetadataDboLuMetadata(IServiceProvider serviceProvider) : base(serviceProvider)
  14. {
  15. }
  16. protected override LuResult<Expression<Func<TType1, object>>> GetExpressionInternal<TType1>(Expression<Func<TType1, LuObjectsMetadata>> modelProperty, LuFieldDbo field)
  17. {
  18. if (field.StartsWith<LuObjectsMetadataDbo>(x => x.Id))
  19. {
  20. return GetSubField<TType1, Guid, Guid>(modelProperty, field, x => x.Id);
  21. }
  22. if (field.StartsWith<LuObjectsMetadataDbo>(x => x.CreatedAt))
  23. {
  24. return GetSubField<TType1, DateTime, DateTimeOffset>(modelProperty, field, x => x.CreatedAt);
  25. }
  26. if (field.StartsWith<LuObjectsMetadataDbo>(x => x.UpdatedAt))
  27. {
  28. return GetSubField<TType1, DateTime?, DateTimeOffset?>(modelProperty, field, x => x.UpdatedAt);
  29. }
  30. return base.GetExpressionInternal(modelProperty, field);
  31. }
  32. }
  33. }