Skip to content

Commit

Permalink
Add ModuleName to GetListInput of DynamicEntity
Browse files Browse the repository at this point in the history
  • Loading branch information
gdlcf88 committed Aug 19, 2021
1 parent 48f3d8a commit 00ab332
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using EasyAbp.Abp.DynamicEntity.ModelDefinitions;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Guids;

namespace DynamicEntitySample.DynamicEntities
Expand Down Expand Up @@ -54,7 +55,7 @@ public async Task SeedAsync(DataSeedContext context)
await _modelDefinitionRepository.InsertAsync(mdComputer);
}

var deComputer = await _dynamicEntityRepository.FindAsync(de => de.ModelDefinitionId == mdComputer.Id);
var deComputer = await _dynamicEntityRepository.FirstOrDefaultAsync(de => de.ModelDefinitionId == mdComputer.Id);
if (deComputer == null)
{
var cpus = new[] {"Intel I3", "Intel I5", "Intel I7", "Intel I9"};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using EasyAbp.Abp.DynamicQuery.Dtos;
using EasyAbp.Abp.DynamicQuery.Filters;
using Volo.Abp.Application.Dtos;
Expand All @@ -7,8 +9,26 @@ namespace EasyAbp.Abp.DynamicEntity.DynamicEntities.Dtos
{
public class GetListInput : PagedAndSortedResultRequestDto, IDynamicQueryInput
{
public Guid ModelDefinitionId { get; set; }
public Guid? ModelDefinitionId { get; set; }

public string ModelName { get; set; }

public DynamicQueryGroup FilterGroup { get; set; }

public override IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (ModelDefinitionId.HasValue && !ModelName.IsNullOrWhiteSpace())
{
yield return new ValidationResult(
"ModelDefinitionId and ModelName cannot have values at the same time.",
new[] {nameof(ModelDefinitionId), nameof(ModelName)});
}

if (!ModelDefinitionId.HasValue && ModelName.IsNullOrWhiteSpace())
{
yield return new ValidationResult("ModelDefinitionId and ModelName cannot both be empty.",
new[] {nameof(ModelDefinitionId), nameof(ModelName)});
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,38 @@
using System.Linq;
using System.Threading.Tasks;
using EasyAbp.Abp.DynamicEntity.DynamicEntities.Dtos;
using EasyAbp.Abp.DynamicEntity.ModelDefinitions;
using Volo.Abp.Application.Services;

namespace EasyAbp.Abp.DynamicEntity.DynamicEntities
{
public class DynamicEntityAppService : CrudAppService<DynamicEntity, DynamicEntityDto, Guid, GetListInput, CreateDynamicEntityDto, UpdateDynamicEntityDto>,
IDynamicEntityAppService
{
private readonly IModelDefinitionRepository _modelDefinitionRepository;
private readonly IDynamicEntityRepository _repository;

public DynamicEntityAppService(IDynamicEntityRepository repository) : base(repository)
public DynamicEntityAppService(
IModelDefinitionRepository modelDefinitionRepository,
IDynamicEntityRepository repository) : base(repository)
{
_modelDefinitionRepository = modelDefinitionRepository;
_repository = repository;
}

protected override async Task<IQueryable<DynamicEntity>> CreateFilteredQueryAsync(GetListInput input)
{
return (await _repository.ExecuteDynamicQueryAsync(input.FilterGroup))
.Where(x => x.ModelDefinitionId == input.ModelDefinitionId);
var query = (await _repository.ExecuteDynamicQueryAsync(input.FilterGroup)).WhereIf(
input.ModelDefinitionId.HasValue, x => x.ModelDefinitionId == input.ModelDefinitionId);

if (!input.ModelName.IsNullOrWhiteSpace())
{
var modelDefinition = await _modelDefinitionRepository.GetAsync(x => x.Name == input.ModelName);

query = query.Where(x => x.ModelDefinitionId == modelDefinition.Id);
}

return query;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
svcModelDefinition.getByName(modelName).done(function (model) {
abp.ui.extensions.entityActions.get(model.type).addContributor(
function (actionList) {
console.log(actionList)
return actionList.addManyTail(
[
{
Expand Down Expand Up @@ -88,12 +87,14 @@
scrollCollapse: true,
//order: [[0, "asc"]],
ajax: abp.libs.datatables.createAjax(svcDynamicEntity.getList, function (requestData) {
console.log(requestData);
let input;
if (filterCallback) {
return filterCallback(requestData);
input = filterCallback(requestData);
} else {
return {};
input = {};
}
input.modelName = modelName
return input;
}),
columnDefs: abp.ui.extensions.tableColumns.get(model.type).columns.toArray(),
};
Expand Down

0 comments on commit 00ab332

Please sign in to comment.