Refaktorisierung der Lokalisierung und DTO-Integration
- Ersetzung von ITranslateService durch IStringLocalizer<X> für verbesserte Lokalisierung. - Aktualisierung der DTO-Klassen entsprechend der neuesten Core.DTO-Struktur. - Integration der neuen Klassen Result und DataResult aus Core.DTO für standardisierte Serviceantworten.
This commit is contained in:
@@ -1,70 +1,70 @@
|
||||
using AutoMapper;
|
||||
using DigitalData.Core.Application;
|
||||
using DigitalData.Core.Contracts.Application;
|
||||
using DigitalData.Core.Contracts.CultureServices;
|
||||
using DigitalData.Core.DTO;
|
||||
using DigitalData.UserManager.Application.Contracts;
|
||||
using DigitalData.UserManager.Application.DTOs.User;
|
||||
using DigitalData.UserManager.Domain.Entities;
|
||||
using DigitalData.UserManager.Infrastructure.Contracts;
|
||||
using Microsoft.Extensions.Localization;
|
||||
|
||||
namespace DigitalData.UserManager.Application.Services
|
||||
{
|
||||
public class UserService : CRUDService<IUserRepository, UserCreateDto, UserReadDto, UserUpdateDto, User, int>, IUserService
|
||||
{
|
||||
public UserService(IUserRepository repository, IKeyTranslationService translationService, IMapper mapper) : base(repository, translationService, mapper)
|
||||
public UserService(IUserRepository repository, IStringLocalizer<Resource> localizer, IMapper mapper) : base(repository, localizer, mapper)
|
||||
{
|
||||
}
|
||||
|
||||
public async Task<IServiceResult<IEnumerable<UserReadDto>>> ReadByModuleIdAsync(int moduleId)
|
||||
public async Task<DataResult<IEnumerable<UserReadDto>>> ReadByModuleIdAsync(int moduleId)
|
||||
{
|
||||
var users = await _repository.ReadByModuleIdAsync(moduleId);
|
||||
IEnumerable<UserReadDto> readDTOs = _mapper.MapOrThrow<IEnumerable<UserReadDto>>(users);
|
||||
return Successful(readDTOs);
|
||||
return Result.Success(readDTOs);
|
||||
}
|
||||
|
||||
public async Task<IServiceResult<IEnumerable<UserReadDto>>> ReadByGroupIdAsync(int groupId)
|
||||
public async Task<DataResult<IEnumerable<UserReadDto>>> ReadByGroupIdAsync(int groupId)
|
||||
{
|
||||
var users = await _repository.ReadByGroupIdAsync(groupId);
|
||||
IEnumerable<UserReadDto> readDTOs = _mapper.MapOrThrow<IEnumerable<UserReadDto>>(users);
|
||||
return Successful(readDTOs);
|
||||
return Result.Success(readDTOs);
|
||||
}
|
||||
|
||||
public async Task<IServiceResult<IEnumerable<UserReadDto>>> ReadUnassignedByModuleIdAsync(int moduleId)
|
||||
public async Task<DataResult<IEnumerable<UserReadDto>>> ReadUnassignedByModuleIdAsync(int moduleId)
|
||||
{
|
||||
var users = await _repository.ReadUnassignedByModuleIdAsync(moduleId);
|
||||
IEnumerable<UserReadDto> readDTOs = _mapper.MapOrThrow<IEnumerable<UserReadDto>>(users);
|
||||
return Successful(readDTOs);
|
||||
return Result.Success(readDTOs);
|
||||
}
|
||||
|
||||
public async Task<IServiceResult<IEnumerable<UserReadDto>>> ReadUnassignedByGroupIdAsync(int groupId)
|
||||
public async Task<DataResult<IEnumerable<UserReadDto>>> ReadUnassignedByGroupIdAsync(int groupId)
|
||||
{
|
||||
var users = await _repository.ReadUnassignedByGroupIdAsync(groupId);
|
||||
IEnumerable<UserReadDto> readDTOs = _mapper.MapOrThrow<IEnumerable<UserReadDto>>(users);
|
||||
return Successful(readDTOs);
|
||||
return Result.Success(readDTOs);
|
||||
}
|
||||
|
||||
public async Task<IServiceResult<int>> CreateAsync(UserPrincipalDto upDto)
|
||||
public async Task<DataResult<int>> CreateAsync(UserPrincipalDto upDto)
|
||||
{
|
||||
var user = _mapper.MapOrThrow<User>(upDto);
|
||||
|
||||
if (await HasEntity(user.Guid))
|
||||
return Failed<int>(MessageKey.UserAlreadyExists.ToString());
|
||||
return Result.Fail<int>().Message(_localizer[Key.UserAlreadyExists]);
|
||||
|
||||
var createdUser = await _repository.CreateAsync(user);
|
||||
if (createdUser is null)
|
||||
return Failed<int>();
|
||||
return Result.Fail<int>();
|
||||
else
|
||||
return Successful(KeyValueOf(createdUser));
|
||||
return Result.Success(KeyValueOf(createdUser));
|
||||
}
|
||||
|
||||
public async Task<IServiceResult<UserReadDto>> ReadByUsernameAsync(string username)
|
||||
public async Task<DataResult<UserReadDto>> ReadByUsernameAsync(string username)
|
||||
{
|
||||
var user = await _repository.ReadByUsernameAsync(username);
|
||||
if (user is null)
|
||||
return Failed<UserReadDto>(MessageKey.UserNotFoundInLocalDB.ToString());
|
||||
return Result.Fail<UserReadDto>().Message(_localizer[Key.UserNotFoundInLocalDB]);
|
||||
|
||||
var userDto = _mapper.MapOrThrow<UserReadDto>(user);
|
||||
return Successful(userDto);
|
||||
return Result.Success(userDto);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user