public override Expression <Func <ApplicationUser, bool> > HandleWhere(DatumWhereCondition condition, object param, Type datumType, out bool callNextHandler) { callNextHandler = true; if (condition.Is(UserDatumWhereConditionsProvider.IS_ACTIVATED_WHERE_CONDITION_NAME) && param is UserDatumIsActivatedTableFilterForm) { var par = param.DirectCastTo <UserDatumIsActivatedTableFilterForm>(); var isActive = par.IsActivated; return(x => x.IsActivated == isActive); } return(null); }
public override Expression <Func <ApplicationUser, bool> > HandleWhere(DatumWhereCondition condition, object param, Type datumType, out bool callNextHandler) { callNextHandler = true; if (!condition.Is(UserDatumWhereConditionsProvider.IS_IN_ROLE_WHERE_CONDITION_NAME)) { return(null); } if (!(param is string[])) { return(null); } var par = param.DirectCastTo <string[]>(); var roleIds = _dbContext.Roles.Where(x => par.Contains(x.Name)).Select(x => x.Id).ToArray(); return(x => x.Roles.Any(r => roleIds.Contains(r.RoleId))); }
public override Expression <Func <ApplicationRole, bool> > HandleWhere(DatumWhereCondition condition, object param, Type datumType, out bool callNextHandler) { callNextHandler = true; if (condition.Is(RoleDatumWhereConditionsProvider.IS_SYSTEM_RESERVED_WHERE_CONDITION_NAME) && param is RoleDatumIsReservedTableFilterForm) { var par = param.DirectCastTo <RoleDatumIsReservedTableFilterForm>(); var isRes = par.IsReserved; var reservedNames = new[] { RequiredRoleInfo.Authenticated.Name, RequiredRoleInfo.Guest.Name, RequiredRoleInfo.SuperAdmin.Name }; if (isRes) { return(x => reservedNames.Any(rn => rn.ToLower() == x.Name.ToLower())); } return(x => reservedNames.All(rn => rn.ToLower() != x.Name.ToLower())); } return(null); }
public Expression HandleWhereBase(DatumWhereCondition condition, object param, Type datumType, out bool callNextHandler) { return(HandleWhere(condition, param, datumType, out callNextHandler)); }
public abstract Expression <Func <TDat, bool> > HandleWhere(DatumWhereCondition condition, object param, Type datumType, out bool callNextHandler);