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.

LuFieldsExpressionsLuGroupDboLuGroups.cs 1.4KB

12345678910111213141516171819202122232425262728293031323334353637
  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 LuFieldsExpressionsLuGroupDboLuGroups : LuFieldsExpressions<LuGroupDbo, LuGroups>
  12. {
  13. public LuFieldsExpressionsLuGroupDboLuGroups(IServiceProvider serviceProvider) : base(serviceProvider)
  14. {
  15. }
  16. protected override LuResult<Expression<Func<TType1, object>>> GetExpressionInternal<TType1>(
  17. Expression<Func<TType1, LuGroups>> modelProperty, LuFieldDbo field)
  18. {
  19. if (field.StartsWith<LuGroupDbo>(x => x.Id))
  20. {
  21. return GetSubField<TType1, Guid, Guid>(modelProperty, field, x => x.Id);
  22. }
  23. else if (field.StartsWith<LuGroupDbo>(x => x.Name))
  24. {
  25. return GetSubField<TType1, string, string>(modelProperty, field, x => x.Name);
  26. }
  27. else if (field.StartsWith<LuGroupDbo>(x => x.Metadata))
  28. {
  29. return GetSubField<TType1, LuObjectsMetadataDbo, LuObjectsMetadata>(modelProperty, field, x => x.IdNavigation);
  30. }
  31. return base.GetExpressionInternal(modelProperty, field);
  32. }
  33. }
  34. }