diff --git a/src/Application/Features/Documents/Commands/Delete/DeleteDocumentCommand.cs b/src/Application/Features/Documents/Commands/Delete/DeleteDocumentCommand.cs index 19b32955c..67b1ea3ea 100644 --- a/src/Application/Features/Documents/Commands/Delete/DeleteDocumentCommand.cs +++ b/src/Application/Features/Documents/Commands/Delete/DeleteDocumentCommand.cs @@ -5,7 +5,7 @@ namespace CleanArchitecture.Blazor.Application.Features.Documents.Commands.Delete; -public class DeleteDocumentCommand : ICacheInvalidatorRequest +public class DeleteDocumentCommand : ICacheInvalidatorRequest> { public CancellationTokenSource? SharedExpiryTokenSource => DocumentCacheKey.SharedExpiryTokenSource(); public int[] Id { get; set; } @@ -16,7 +16,7 @@ public DeleteDocumentCommand(int[] id) } -public class DeleteDocumentCommandHandler : IRequestHandler +public class DeleteDocumentCommandHandler : IRequestHandler> { private readonly IApplicationDbContext _context; @@ -27,7 +27,7 @@ IApplicationDbContext context { _context = context; } - public async Task Handle(DeleteDocumentCommand request, CancellationToken cancellationToken) + public async Task> Handle(DeleteDocumentCommand request, CancellationToken cancellationToken) { var items = await _context.Documents.Where(x => request.Id.Contains(x.Id)).ToListAsync(cancellationToken); foreach (var item in items) @@ -35,7 +35,7 @@ public async Task Handle(DeleteDocumentCommand request, CancellationToke item.AddDomainEvent(new DeletedEvent(item)); _context.Documents.Remove(item); } - await _context.SaveChangesAsync(cancellationToken); - return await Result.SuccessAsync(); + var result= await _context.SaveChangesAsync(cancellationToken); + return await Result.SuccessAsync(result); } } diff --git a/src/Blazor.Server.UI/Pages/Documents/Documents.razor b/src/Blazor.Server.UI/Pages/Documents/Documents.razor index af73da7b4..52babc9a5 100644 --- a/src/Blazor.Server.UI/Pages/Documents/Documents.razor +++ b/src/Blazor.Server.UI/Pages/Documents/Documents.razor @@ -336,7 +336,8 @@ var command = _mapper.Map(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); @@ -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(); } } diff --git a/src/Blazor.Server.UI/Pages/Identity/Users/Users.razor b/src/Blazor.Server.UI/Pages/Identity/Users/Users.razor index adfdf2791..11ade7c01 100644 --- a/src/Blazor.Server.UI/Pages/Identity/Users/Users.razor +++ b/src/Blazor.Server.UI/Pages/Identity/Users/Users.razor @@ -86,7 +86,7 @@ Variant="Variant.Outlined" Color="Color.Primary" StartIcon="@Icons.Material.Filled.Upload" - for="@context"> + for="@context"> @if (_uploading) { @@ -225,20 +225,20 @@ - - @context.LockoutEnd - - - - - - - <_PermissionsDrawer OnAssignAllChanged="OnAssignAllChangedHandler" Waiting="@_processing" OnOpenChanged="OnOpenChangedHandler" Open="_showPermissionsDrawer" Permissions="_permissions" OnAssignChanged="OnAssignChangedHandler"> - - - - - + + @context.LockoutEnd + + + + + + + <_PermissionsDrawer OnAssignAllChanged="OnAssignAllChangedHandler" Waiting="@_processing" OnOpenChanged="OnOpenChangedHandler" Open="_showPermissionsDrawer" Permissions="_permissions" OnAssignChanged="OnAssignChangedHandler"> + + + + + @code { [Inject] @@ -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(_mapper.ConfigurationProvider).ToListAsync(); @@ -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>() - { + { {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);