Browse Source

Improve BlazorisePageBase

pull/5399/head
Halil İbrahim Kalkan 6 years ago
parent
commit
ac185a1a2a
  1. 93
      framework/src/Volo.Abp.BlazoriseUI/Volo/Abp/BlazoriseUI/BlazorisePageBase.cs
  2. 2
      framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Services/ICrudAppService.cs
  3. 2
      framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/CrudAppService.cs

93
framework/src/Volo.Abp.BlazoriseUI/Volo/Abp/BlazoriseUI/BlazorisePageBase.cs

@ -15,29 +15,65 @@ using Volo.Abp.ObjectMapping;
namespace Volo.Abp.BlazoriseUI namespace Volo.Abp.BlazoriseUI
{ {
public abstract class BlazorisePageBase< public abstract class BlazorisePageBase<TAppService, TEntityDto, TKey>
TAppService, : BlazorisePageBase<TAppService, TEntityDto, TKey, PagedAndSortedResultRequestDto>
TEntityDto, where TAppService : ICrudAppService<TEntityDto, TKey>
TKey, where TEntityDto : IEntityDto<TKey>, new()
TGetListInput, {
TCreateInput,
TUpdateInput> }
: OwningComponentBase
public abstract class BlazorisePageBase<TAppService, TEntityDto, TKey, TGetListInput>
: BlazorisePageBase<TAppService, TEntityDto, TKey, TGetListInput, TEntityDto>
where TAppService : ICrudAppService<TEntityDto, TKey, TGetListInput>
where TEntityDto : IEntityDto<TKey>, new()
where TGetListInput : new()
{
}
public abstract class BlazorisePageBase<TAppService, TEntityDto, TKey, TGetListInput, TCreateInput>
: BlazorisePageBase<TAppService, TEntityDto, TKey, TGetListInput, TCreateInput, TCreateInput>
where TAppService : ICrudAppService<TEntityDto, TKey, TGetListInput, TCreateInput>
where TEntityDto : IEntityDto<TKey>
where TCreateInput : new()
where TGetListInput : new()
{
}
public abstract class BlazorisePageBase<TAppService, TEntityDto, TKey, TGetListInput, TCreateInput, TUpdateInput>
: BlazorisePageBase<TAppService, TEntityDto, TEntityDto, TKey, TGetListInput, TCreateInput, TUpdateInput>
where TAppService : ICrudAppService<TEntityDto, TKey, TGetListInput, TCreateInput, TUpdateInput> where TAppService : ICrudAppService<TEntityDto, TKey, TGetListInput, TCreateInput, TUpdateInput>
where TEntityDto : IEntityDto<TKey> where TEntityDto : IEntityDto<TKey>
where TCreateInput : new() where TCreateInput : new()
where TUpdateInput : new() where TUpdateInput : new()
where TGetListInput : PagedAndSortedResultRequestDto, new() where TGetListInput : new()
{
}
public abstract class BlazorisePageBase<TAppService, TGetOutputDto, TGetListOutputDto, TKey, TGetListInput, TCreateInput, TUpdateInput>
: OwningComponentBase
where TAppService : ICrudAppService<TGetOutputDto, TGetListOutputDto, TKey, TGetListInput, TCreateInput, TUpdateInput>
where TGetOutputDto : IEntityDto<TKey>
where TGetListOutputDto : IEntityDto<TKey>
where TCreateInput : new()
where TUpdateInput : new()
where TGetListInput : new()
{ {
[Inject] protected TAppService AppService { get; set; } [Inject] protected TAppService AppService { get; set; }
[Inject] protected IUiMessageService UiMessageService { get; set; } [Inject] protected IUiMessageService UiMessageService { get; set; }
[Inject] protected IStringLocalizer<AbpUiResource> UiLocalizer { get; set; } [Inject] protected IStringLocalizer<AbpUiResource> UiLocalizer { get; set; }
protected virtual int PageSize => LimitedResultRequestDto.DefaultMaxResultCount;
protected int CurrentPage; protected int CurrentPage;
protected string CurrentSorting; protected string CurrentSorting;
protected int? TotalCount; protected int? TotalCount;
protected IReadOnlyList<TEntityDto> Entities; protected IReadOnlyList<TGetListOutputDto> Entities;
protected TCreateInput NewEntity; protected TCreateInput NewEntity;
protected TKey EditingEntityId; protected TKey EditingEntityId;
@ -97,19 +133,30 @@ namespace Volo.Abp.BlazoriseUI
protected virtual async Task GetEntitiesAsync() protected virtual async Task GetEntitiesAsync()
{ {
var result = await AppService.GetListAsync( var input = new TGetListInput();
new TGetListInput
{ if (input is ISortedResultRequest sortedResultRequestInput)
SkipCount = CurrentPage * LimitedResultRequestDto.DefaultMaxResultCount, {
MaxResultCount = LimitedResultRequestDto.DefaultMaxResultCount, sortedResultRequestInput.Sorting = CurrentSorting;
Sorting = CurrentSorting }
});
if (input is IPagedResultRequest pagedResultRequestInput)
{
pagedResultRequestInput.SkipCount = CurrentPage * PageSize;
}
if (input is ILimitedResultRequest limitedResultRequestInput)
{
limitedResultRequestInput.MaxResultCount = PageSize;
}
var result = await AppService.GetListAsync(input);
Entities = result.Items; Entities = result.Items;
TotalCount = (int?) result.TotalCount; TotalCount = (int?) result.TotalCount;
} }
protected virtual async Task OnDataGridReadAsync(DataGridReadDataEventArgs<TEntityDto> e) protected virtual async Task OnDataGridReadAsync(DataGridReadDataEventArgs<TGetListOutputDto> e)
{ {
CurrentSorting = e.Columns CurrentSorting = e.Columns
.Where(c => c.Direction != SortDirection.None) .Where(c => c.Direction != SortDirection.None)
@ -137,7 +184,7 @@ namespace Volo.Abp.BlazoriseUI
{ {
CreateModal.Hide(); CreateModal.Hide();
} }
protected virtual async Task CloseCreateModalAsync() protected virtual async Task CloseCreateModalAsync()
{ {
CreateModal.Hide(); CreateModal.Hide();
@ -148,7 +195,7 @@ namespace Volo.Abp.BlazoriseUI
var entityDto = await AppService.GetAsync(id); var entityDto = await AppService.GetAsync(id);
EditingEntityId = id; EditingEntityId = id;
EditingEntity = ObjectMapper.Map<TEntityDto, TUpdateInput>(entityDto); EditingEntity = ObjectMapper.Map<TGetOutputDto, TUpdateInput>(entityDto);
EditModal.Show(); EditModal.Show();
} }
@ -157,7 +204,7 @@ namespace Volo.Abp.BlazoriseUI
{ {
EditModal.Hide(); EditModal.Hide();
} }
protected virtual async Task CloseEditModalAsync() protected virtual async Task CloseEditModalAsync()
{ {
EditModal.Hide(); EditModal.Hide();
@ -177,7 +224,7 @@ namespace Volo.Abp.BlazoriseUI
EditModal.Hide(); EditModal.Hide();
} }
protected virtual async Task DeleteEntityAsync(TEntityDto entity) protected virtual async Task DeleteEntityAsync(TGetListOutputDto entity)
{ {
if (!await UiMessageService.ConfirmAsync(GetDeleteConfirmationMessage(entity))) if (!await UiMessageService.ConfirmAsync(GetDeleteConfirmationMessage(entity)))
{ {
@ -188,7 +235,7 @@ namespace Volo.Abp.BlazoriseUI
await GetEntitiesAsync(); await GetEntitiesAsync();
} }
protected virtual string GetDeleteConfirmationMessage(TEntityDto entity) protected virtual string GetDeleteConfirmationMessage(TGetListOutputDto entity)
{ {
return UiLocalizer["ItemWillBeDeletedMessage"]; return UiLocalizer["ItemWillBeDeletedMessage"];
} }

2
framework/src/Volo.Abp.Ddd.Application.Contracts/Volo/Abp/Application/Services/ICrudAppService.cs

@ -9,7 +9,7 @@ namespace Volo.Abp.Application.Services
} }
public interface ICrudAppService<TEntityDto, in TKey, in TGetListInput> public interface ICrudAppService<TEntityDto, in TKey, in TGetListInput>
: ICrudAppService<TEntityDto, TKey, TGetListInput, TEntityDto, TEntityDto> : ICrudAppService<TEntityDto, TKey, TGetListInput, TEntityDto>
{ {
} }

2
framework/src/Volo.Abp.Ddd.Application/Volo/Abp/Application/Services/CrudAppService.cs

@ -21,7 +21,7 @@ namespace Volo.Abp.Application.Services
} }
public abstract class CrudAppService<TEntity, TEntityDto, TKey, TGetListInput> public abstract class CrudAppService<TEntity, TEntityDto, TKey, TGetListInput>
: CrudAppService<TEntity, TEntityDto, TKey, TGetListInput, TEntityDto, TEntityDto> : CrudAppService<TEntity, TEntityDto, TKey, TGetListInput, TEntityDto>
where TEntity : class, IEntity<TKey> where TEntity : class, IEntity<TKey>
where TEntityDto : IEntityDto<TKey> where TEntityDto : IEntityDto<TKey>
{ {

Loading…
Cancel
Save