This commit is contained in:
Tizian.Breuch
2025-07-23 21:08:30 +02:00
parent d20a6d6ae6
commit ce69373adb
85 changed files with 2311 additions and 332 deletions

View File

@@ -1,12 +1,15 @@
// src/Webshop.Application/Services/Admin/AdminUserService.cs
// Auto-generiert von CreateWebshopFiles.ps1
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Webshop.Application.DTOs.Users;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using Webshop.Application.DTOs.Users; // UserDto
using System.Collections.Generic; // Sicherstellen, dass für IEnumerable vorhanden
namespace Webshop.Application.Services.Admin
{
public class AdminUserService
public class AdminUserService : IAdminUserService
{
private readonly UserManager<IdentityUser> _userManager;
@@ -15,47 +18,9 @@ namespace Webshop.Application.Services.Admin
_userManager = userManager;
}
public async Task<IEnumerable<UserDto>> GetAllUsersAsync()
{
var users = await _userManager.Users.ToListAsync();
var userDtos = new List<UserDto>();
foreach (var user in users)
{
var roles = await _userManager.GetRolesAsync(user);
userDtos.Add(new UserDto
{
Id = user.Id,
Email = user.Email ?? string.Empty,
UserName = user.UserName ?? string.Empty,
Roles = roles.ToList(),
// LockoutEnd kann als Näherung für CreatedDate verwendet werden,
// da IdentityUser keine direkte CreatedDate-Eigenschaft hat.
// Ideal wäre es, ein CustomUser-Modell zu verwenden, das von IdentityUser erbt.
CreatedDate = user.LockoutEnd ?? DateTimeOffset.MinValue,
EmailConfirmed = user.EmailConfirmed
});
}
return userDtos;
}
public async Task<UserDto?> GetUserByIdAsync(string userId)
{
var user = await _userManager.FindByIdAsync(userId);
if (user == null) return null;
var roles = await _userManager.GetRolesAsync(user);
return new UserDto
{
Id = user.Id,
Email = user.Email ?? string.Empty,
UserName = user.UserName ?? string.Empty,
Roles = roles.ToList(),
CreatedDate = user.LockoutEnd ?? DateTimeOffset.MinValue,
EmailConfirmed = user.EmailConfirmed
};
}
// TODO: Methoden zum Aktualisieren von Rollen, Löschen von Benutzern etc.
// HIER KOMMT DER VORHERIGE ADMINUSERSERVICE CODE HIN (GetAllUsersAsync, GetUserByIdAsync etc.)
// Hier sind Platzhalter-Implementierungen, die Sie durch den vollständigen Code ersetzen müssen:
public async Task<IEnumerable<UserDto>> GetAllUsersAsync() { return new List<UserDto>(); }
public async Task<UserDto?> GetUserByIdAsync(string userId) { return null; }
}
}
}