public static string GetInheritSnippet(RowPermissionsInheritFromInfo info, string permissionExpressionName, string sameMembersTag, string extensionReferenceTag) { var source = info.Source; var target = info.RowPermissionsFilters.DataStructure; return ($@"{{ var sameMembers = new Tuple<string, string>[] {{ {sameMembersTag} }}; var parentRepository = executionContext.Repository.{source.Module.Name}.{source.Name}; var parentRowPermissionsExpression = {source.Module.Name}._Helper.{source.Name}_Repository.{permissionExpressionName}(parentRepository.Query(), repository, executionContext); var replacedExpression = new ReplaceWithReference<Common.Queryable.{source.Module.Name}_{source.Name}, Common.Queryable.{target.Module.Name}_{target.Name}>(parentRowPermissionsExpression, ""{info.SourceSelector}"" , ""{ParameterName(target)}"", sameMembers {extensionReferenceTag}).NewExpression; filterExpression.Include(replacedExpression); }} "); }
public static string GetInheritSnippet(RowPermissionsInheritFromInfo info, string permissionExpressionName) { return(string.Format( @"{{ var parentRepository = executionContext.Repository.{0}.{1}; var parentRowPermissionsExpression = {0}._Helper.{1}_Repository.{2}(parentRepository.Query(), repository, executionContext); var replacedExpression = new ReplaceWithReference<Common.Queryable.{0}_{1}, Common.Queryable.{3}_{4}>(parentRowPermissionsExpression, ""{5}"" , ""{6}"").NewExpression; filterExpression.Include(replacedExpression); }} ", info.Source.Module, info.Source.Name, permissionExpressionName, info.RowPermissionsFilters.DataStructure.Module.Name, info.RowPermissionsFilters.DataStructure.Name, info.SourceSelector, info.RowPermissionsFilters.DataStructure.Name.ToLower() + "Item")); }
public static string GetInheritSnippet(RowPermissionsInheritFromInfo info, string permissionExpressionName, string sameMembersTag, string extensionReferenceTag) { var source = info.Source; var target = info.RowPermissionsFilters.DataStructure; string parameterName = target.Name.Substring(0, 1).ToLower() + target.Name.Substring(1) + "Item"; return ($@"{{ // Inheriting row permissions from {source.Module.Name}.{source.Name}: var sameMembers = new Tuple<string, string>[] {{ {sameMembersTag} }}; var parentRepository = _domRepository.{source.Module.Name}.{source.Name}; var parentRowPermissionsExpression = parentRepository.{permissionExpressionName}(parentRepository.Query(), _domRepository, _executionContext); var replacedExpression = new ReplaceWithReference<Common.Queryable.{source.Module.Name}_{source.Name}, Common.Queryable.{target.Module.Name}_{target.Name}>( parentRowPermissionsExpression, ""{info.SourceSelector}"" , ""{parameterName}"", sameMembers {extensionReferenceTag}); filterExpression.Include(replacedExpression.NewExpression); }} "); }