using AutoMapper; using NG_2023_Kanban.BusinessLayer.Interfaces; using NG_2023_Kanban.BusinessLayer.Models; using NG_2023_Kanban.DataLayer.Repositories; using NG_2023_Kanban.DataLayer.Entities; using NG_2023_Kanban.DataLayer.Interfaces; namespace NG_2023_Kanban.BusinessLayer.Services { public class UserService : IUserService { private readonly IUserRepository _userRepository; private readonly IMapper _mapper; public UserService(IUserRepository userRepository, IMapper mapper) { _userRepository = userRepository; _mapper = mapper; } public async Task GetAsync(int id) { return _mapper.Map(await _userRepository.GetAsync(id)); } public async Task> GetAllAsync() { return _mapper.Map>(await _userRepository.GetAllAsync()); } public async Task UpdateAsync(int id, UserModel user) { var entity = _mapper.Map(user); await _userRepository.UpdateAsync(id, entity); } public async Task DeleteAsync(int id) { await _userRepository.DeleteAsync(id); } public async Task LoginAsync(UserModel user) { var data = await _userRepository.FindAsync(x => x.Username == user.Username && x.Password == user.Password); if (data.Any()) return _mapper.Map>(data).First(); else return null; } public async Task RegisterAsync(UserModel user) { var entity = _mapper.Map(user); await _userRepository.CreateAsync(entity); return _mapper.Map(entity); } } }