mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-18 14:34:23 +01:00
Add user service
This commit is contained in:
44
BTCPayServer/Services/UserService.cs
Normal file
44
BTCPayServer/Services/UserService.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using BTCPayServer.Data;
|
||||
using BTCPayServer.Storage.Services;
|
||||
using BTCPayServer.Services.Stores;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
|
||||
namespace BTCPayServer.Services
|
||||
{
|
||||
public class UserService
|
||||
{
|
||||
private readonly UserManager<ApplicationUser> _userManager;
|
||||
private readonly StoredFileRepository _storedFileRepository;
|
||||
private readonly FileService _fileService;
|
||||
private readonly StoreRepository _storeRepository;
|
||||
|
||||
public UserService(
|
||||
UserManager<ApplicationUser> userManager,
|
||||
StoredFileRepository storedFileRepository,
|
||||
FileService fileService,
|
||||
StoreRepository storeRepository
|
||||
)
|
||||
{
|
||||
_userManager = userManager;
|
||||
_storedFileRepository = storedFileRepository;
|
||||
_fileService = fileService;
|
||||
_storeRepository = storeRepository;
|
||||
}
|
||||
|
||||
public async Task DeleteUserAndAssociatedData(ApplicationUser user)
|
||||
{
|
||||
var userId = user.Id;
|
||||
var files = await _storedFileRepository.GetFiles(new StoredFileRepository.FilesQuery()
|
||||
{
|
||||
UserIds = new[] { userId },
|
||||
});
|
||||
|
||||
await Task.WhenAll(files.Select(file => _fileService.RemoveFile(file.Id, userId)));
|
||||
|
||||
await _userManager.DeleteAsync(user);
|
||||
await _storeRepository.CleanUnreachableStores();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user