Skip to content
Merged

fixed #310

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

namespace CleanArchitecture.Blazor.Application.Features.Documents.Commands.Delete;

public class DeleteDocumentCommand : ICacheInvalidatorRequest<Result>
public class DeleteDocumentCommand : ICacheInvalidatorRequest<Result<int>>
{
public CancellationTokenSource? SharedExpiryTokenSource => DocumentCacheKey.SharedExpiryTokenSource();
public int[] Id { get; set; }
Expand All @@ -16,7 +16,7 @@ public DeleteDocumentCommand(int[] id)
}


public class DeleteDocumentCommandHandler : IRequestHandler<DeleteDocumentCommand, Result>
public class DeleteDocumentCommandHandler : IRequestHandler<DeleteDocumentCommand, Result<int>>

{
private readonly IApplicationDbContext _context;
Expand All @@ -27,15 +27,15 @@ IApplicationDbContext context
{
_context = context;
}
public async Task<Result> Handle(DeleteDocumentCommand request, CancellationToken cancellationToken)
public async Task<Result<int>> Handle(DeleteDocumentCommand request, CancellationToken cancellationToken)
{
var items = await _context.Documents.Where(x => request.Id.Contains(x.Id)).ToListAsync(cancellationToken);
foreach (var item in items)
{
item.AddDomainEvent(new DeletedEvent<Document>(item));
_context.Documents.Remove(item);
}
await _context.SaveChangesAsync(cancellationToken);
return await Result.SuccessAsync();
var result= await _context.SaveChangesAsync(cancellationToken);
return await Result<int>.SuccessAsync(result);
}
}
7 changes: 3 additions & 4 deletions src/Blazor.Server.UI/Pages/Documents/Documents.razor
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,8 @@
var command = _mapper.Map<AddEditDocumentCommand>(dto);
var parameters = new DialogParameters
{
{ nameof(_DocumentFormDialog.model),command },
{ nameof(DeleteConfirmation.Command), command },
{ nameof(_DocumentFormDialog.model),command },
};
var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.Medium, FullWidth = true };
var dialog = DialogService.Show<_DocumentFormDialog>(string.Format(ConstantString.EDITTHEITEM, L["Document"]), parameters, options);
Expand All @@ -346,9 +347,7 @@
var state = await dialog.Result;
if (!state.Canceled)
{
var result = await _mediator.Send(command);
await _table.ReloadServerData();
Snackbar.Add($"{ConstantString.SAVESUCCESS}", MudBlazor.Severity.Info);
await _table.ReloadServerData();
}
}

Expand Down
76 changes: 42 additions & 34 deletions src/Blazor.Server.UI/Pages/Identity/Users/Users.razor
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@
Variant="Variant.Outlined"
Color="Color.Primary"
StartIcon="@Icons.Material.Filled.Upload"
for="@context">
for="@context">
@if (_uploading)
{
<MudProgressCircular Class="ms-n1" Size="Size.Small" Indeterminate="true" />
Expand Down Expand Up @@ -225,20 +225,20 @@
</MudTd>
<MudTd HideSmall="true" DataLabel="@L["Is Active"]">
<MudCheckBox Checked="@context.IsActive" ReadOnly Color="Color.Secondary"></MudCheckBox>
</MudTd>
<MudTd HideSmall="true" DataLabel="@L["Lock Status"]">@context.LockoutEnd</MudTd>
</RowTemplate>
<PagerContent>
<MudTablePager PageSizeOptions="@(new int[]{10,15,30,50,100,500,1000})" />
</PagerContent>
</MudTable>

<_PermissionsDrawer OnAssignAllChanged="OnAssignAllChangedHandler" Waiting="@_processing" OnOpenChanged="OnOpenChangedHandler" Open="_showPermissionsDrawer" Permissions="_permissions" OnAssignChanged="OnAssignChangedHandler"></_PermissionsDrawer>
</ChildContent>
<ErrorContent>
<CustomError Exception="context"></CustomError>
</ErrorContent>
</ErrorBoundary>
</MudTd>
<MudTd HideSmall="true" DataLabel="@L["Lock Status"]">@context.LockoutEnd</MudTd>
</RowTemplate>
<PagerContent>
<MudTablePager PageSizeOptions="@(new int[]{10,15,30,50,100,500,1000})" />
</PagerContent>
</MudTable>

<_PermissionsDrawer OnAssignAllChanged="OnAssignAllChangedHandler" Waiting="@_processing" OnOpenChanged="OnOpenChangedHandler" Open="_showPermissionsDrawer" Permissions="_permissions" OnAssignChanged="OnAssignChangedHandler"></_PermissionsDrawer>
</ChildContent>
<ErrorContent>
<CustomError Exception="context"></CustomError>
</ErrorContent>
</ErrorBoundary>

@code {
[Inject]
Expand Down Expand Up @@ -332,12 +332,13 @@
try
{
_loading = true;
var items = await _userManager.Users.Where(x => x.UserName.Contains(_searchString) ||
x.Email.Contains(_searchString) ||
x.DisplayName.Contains(_searchString) ||
x.PhoneNumber.Contains(_searchString) ||
x.TenantName.Contains(_searchString) ||
x.UserRoles.Any(x=>x.Role.Name.Contains(_searchString)))
var items = await _userManager.Users.Where(x => x.UserName.Contains(_searchString) ||
x.Email.Contains(_searchString) ||
x.DisplayName.Contains(_searchString) ||
x.PhoneNumber.Contains(_searchString) ||
x.TenantName.Contains(_searchString) ||
x.Provider.Contains(_searchString) ||
x.UserRoles.Any(x => x.Role.Name.Contains(_searchString)))
.Include(x => x.UserRoles).ThenInclude(x => x.Role)
.OrderBy($"{state.SortLabel ?? "UserName"} {(state.SortDirection == SortDirection.None ? SortDirection.Descending.ToString() : state.SortDirection.ToString())}")
.Skip(state.Page * state.PageSize).Take(state.PageSize).ProjectTo<ApplicationUserDto>(_mapper.ConfigurationProvider).ToListAsync();
Expand Down Expand Up @@ -670,27 +671,34 @@
private async Task OnExport()
{
_exporting = true;
var items = await _userManager.Users
.Where(x => x.UserName.Contains(_searchString) || x.Email.Contains(_searchString) || x.DisplayName.Contains(_searchString) || x.PhoneNumber.Contains(_searchString))
.Select(x => new ApplicationUserDto()
{
Id = x.Id,
UserName = x.UserName!,
DisplayName = x.DisplayName,
Email = x.Email!,
PhoneNumber = x.PhoneNumber,
TenantName = x.TenantName,
}).ToListAsync();
var items = await _userManager.Users.Where(x => x.UserName.Contains(_searchString) ||
x.Email.Contains(_searchString) ||
x.DisplayName.Contains(_searchString) ||
x.PhoneNumber.Contains(_searchString) ||
x.TenantName.Contains(_searchString) ||
x.Provider.Contains(_searchString) ||
x.UserRoles.Any(x => x.Role.Name.Contains(_searchString)))
.Select(x => new ApplicationUserDto()
{
Id = x.Id,
UserName = x.UserName!,
DisplayName = x.DisplayName,
Email = x.Email!,
PhoneNumber = x.PhoneNumber,
TenantId = x.TenantId,
TenantName = x.TenantName,
}).ToListAsync();
var result = await _excelService.ExportAsync(items,
new Dictionary<string, Func<ApplicationUserDto, object?>>()
{
{
{L["Id"],item => item.Id},
{L["User Name"],item => item.UserName},
{L["Display Name"],item => item.DisplayName},
{L["Email"],item => item.Email},
{L["Phone Number"],item => item.PhoneNumber},
{L["Tenant Id"],item => item.TenantId},
{L["Tenant Name"],item => item.TenantName},
}
}
, L["Users"]);
var downloadresult = await _blazorDownloadFileService.DownloadFile($"{L["Users"]}.xlsx", result, contentType: "application/octet-stream");
Snackbar.Add($"{ConstantString.EXPORTSUCESS}", MudBlazor.Severity.Info);
Expand Down