using AutoMapper; using DigitalData.UserManager.Application.Contracts; using DigitalData.UserManager.Application.DTOs.User; using DigitalData.UserManager.Domain.Entities; using DigitalData.UserManager.Application.Contracts.Repositories; using Microsoft.Extensions.Localization; using DigitalData.Core.Abstraction.Application.DTO; namespace DigitalData.UserManager.Application.Services { [Obsolete("Use MediatR")] public class UserService : BaseService, IUserService { private readonly IStringLocalizer? _localizer; public UserService(IUserRepository repository, IMapper mapper, IStringLocalizer? localizer = null) : base(repository, mapper) { _localizer = localizer; } public async Task>> ReadByModuleIdAsync(int moduleId) { var users = await _repository.ReadByModuleIdAsync(moduleId); IEnumerable readDTOs = _mapper.Map>(users); return Result.Success(readDTOs); } public async Task>> ReadByGroupIdAsync(int groupId) { var users = await _repository.ReadByGroupIdAsync(groupId); IEnumerable readDTOs = _mapper.Map>(users); return Result.Success(readDTOs); } public async Task>> ReadUnassignedByModuleIdAsync(int moduleId) { var users = await _repository.ReadUnassignedByModuleIdAsync(moduleId); IEnumerable readDTOs = _mapper.Map>(users); return Result.Success(readDTOs); } public async Task>> ReadUnassignedByGroupIdAsync(int groupId) { var users = await _repository.ReadUnassignedByGroupIdAsync(groupId); IEnumerable readDTOs = _mapper.Map>(users); return Result.Success(readDTOs); } public async Task> CreateAsync(UserPrincipalDto upDto) { var user = _mapper.Map(upDto); if (await HasEntity(user.Id)) return Result.Fail().Message(_localizer?[Key.UserAlreadyExists].Value); //set the user var current_user = await GetUserAsync(); user.AddedWho = current_user?.Username ?? "UNAUTHORIZED"; var createdUser = await _repository.CreateAsync(user); if (createdUser is null) return Result.Fail(); else return Result.Success(createdUser.Id); } public async Task> ReadByUsernameAsync(string username) { var user = await _repository.ReadByUsernameAsync(username); if (user is null) return Result.Fail().Message(_localizer?[Key.UserNotFoundInLocalDB].Value); var userDto = _mapper.Map(user); return Result.Success(userDto); } } }