public static RepositoryExtensionsClassDefinition GetRepositoryExtensionsClassDefinition(this EntityFrameworkCoreProject project) { var definition = new RepositoryExtensionsClassDefinition { Namespaces = { "System", "System.Linq", project.GetDataLayerNamespace(), project.GetEntityLayerNamespace() }, Namespace = project.GetDataLayerRepositoriesNamespace(), AccessModifier = AccessModifier.Public, IsStatic = true, Name = "RepositoryExtensions" }; definition.Methods.Add(new MethodDefinition("IQueryable<TEntity>", "Paging", new ParameterDefinition(project.GetDbContextName(project.Database), "dbContext"), new ParameterDefinition("int", "pageSize", "0"), new ParameterDefinition("int", "pageNumber", "0")) { AccessModifier = AccessModifier.Public, IsExtension = true, IsStatic = true, GenericTypes = { new GenericTypeDefinition { Name = "TEntity", Constraint = "TEntity : class" } }, Lines = { new CodeLine("var query = dbContext.Set<TEntity>().AsQueryable();"), new CodeLine(), new CodeLine("return pageSize > 0 && pageNumber > 0 ? query.Skip((pageNumber - 1) * pageSize).Take(pageSize) : query;") } }); definition.Methods.Add(new MethodDefinition("IQueryable<TModel>", "Paging", new ParameterDefinition("IQueryable<TModel>", "query"), new ParameterDefinition("int", "pageSize", "0"), new ParameterDefinition("int", "pageNumber", "0")) { AccessModifier = AccessModifier.Public, IsExtension = true, IsStatic = true, GenericTypes = { new GenericTypeDefinition { Name = "TModel", Constraint = "TModel : class" } }, Lines = { new CodeLine("return pageSize > 0 && pageNumber > 0 ? query.Skip((pageNumber - 1) * pageSize).Take(pageSize) : query;") } }); return(definition); }
public static CSharpClassDefinition GetRepositoryExtensionsClassDefinition(this EntityFrameworkCoreProject project) { var classDefinition = new CSharpClassDefinition(); classDefinition.Namespaces.Add("System"); classDefinition.Namespaces.Add("System.Linq"); classDefinition.Namespaces.Add(project.GetDataLayerNamespace()); classDefinition.Namespaces.Add(project.GetEntityLayerNamespace()); classDefinition.Namespace = project.GetDataLayerRepositoriesNamespace(); classDefinition.IsStatic = true; classDefinition.Name = "RepositoryExtensions"; classDefinition.Methods.Add(new MethodDefinition("IQueryable<TEntity>", "Paging", new ParameterDefinition(project.Database.GetDbContextName(), "dbContext"), new ParameterDefinition("Int32", "pageSize", "0"), new ParameterDefinition("Int32", "pageNumber", "0")) { IsExtension = true, IsStatic = true, GenericTypes = new List <GenericTypeDefinition> { new GenericTypeDefinition { Name = "TEntity", Constraint = "TEntity : class" } }, Lines = new List <ILine>() { new CodeLine("var query = dbContext.Set<TEntity>().AsQueryable();"), new CodeLine(), new CodeLine("return pageSize > 0 && pageNumber > 0 ? query.Skip((pageNumber - 1) * pageSize).Take(pageSize) : query;") } }); classDefinition.Methods.Add(new MethodDefinition("IQueryable<TModel>", "Paging", new ParameterDefinition("IQueryable<TModel>", "query"), new ParameterDefinition("Int32", "pageSize", "0"), new ParameterDefinition("Int32", "pageNumber", "0")) { IsExtension = true, IsStatic = true, GenericTypes = new List <GenericTypeDefinition> { new GenericTypeDefinition { Name = "TModel", Constraint = "TModel : class" } }, Lines = new List <ILine>() { new CodeLine("return pageSize > 0 && pageNumber > 0 ? query.Skip((pageNumber - 1) * pageSize).Take(pageSize) : query;") } }); return(classDefinition); }