/
AMachine
/
MMDB_Backend
Обзор
Документация
Войти
/
AMachine
/
MMDB_Backend
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
MMDB.Application/UsersService.cs
100 строк
3 KB
AssaultMachine
rename DataParameters to FilterParameters
14 май 2025, 21:07
14 май 2025, 21:07
a2c08f1
Код
Авторство
О чём код?
using MMDB.Core.Abstract.Repositories; using MMDB.Core.Abstract.Infrastructure; using MMDB.Core.Abstract.Services; using MMDB.Core.FilterParameters; using MMDB.Core.Models; namespace MMDB.Application; public class UsersService(IUsersRepository usersRepository, IPasswordHasher passwordHasher) : IUsersService { public int GetCount() => usersRepository.GetCount(); public async ValueTask<(List<User> Users, int Count)> GetAllAsync(UserParameters parameters) { return await usersRepository.GetAllAsync(parameters); } public async ValueTask<User?> GetByIdAsync(Guid id) { return await usersRepository.GetByIdAsync(id); } public async ValueTask<User?> GetByNameAsync(string username) { return await usersRepository.GetByNameAsync(username); } public async ValueTask<(Guid Id, string Error)> CreateAsync(string username, string password, bool isAdmin, string ckey) { if (await usersRepository.GetByNameAsync(username) is not null) return (Guid.Empty, "пользователь с таким именем уже существует"); User user = new() { Id = Guid.NewGuid(), Username = username, PasswordHash = passwordHasher.GenerateHash(password), IsAdmin = isAdmin, IsActive = true, Ckey = ckey }; await usersRepository.AddAsync(user); return (user.Id, string.Empty); } public async ValueTask<(Guid Id, string Error)> UpdateAsync( Guid id, string? username, string? password, bool? isAdmin, bool? isActive, string? ckey) { if (await usersRepository.GetByIdAsync(id) is null) return (Guid.Empty, "пользователь не найден"); await usersRepository.UpdateAsync(new User() { Id = id, Username = username, PasswordHash = password is null ? null : passwordHasher.GenerateHash(password), IsAdmin = isAdmin, IsActive = isActive, Ckey = ckey }); return (id, string.Empty); } public async ValueTask<(Guid Id, string Error)> DeleteAsync(Guid id) { if (await usersRepository.GetByIdAsync(id) is null) return (Guid.Empty, "пользователь не найден"); await usersRepository.DeleteAsync(id); return (id, string.Empty); } public async ValueTask<(Guid Id, string Error)> DeactivateAsync(Guid id) { if (await usersRepository.GetByIdAsync(id) is null) return (Guid.Empty, "пользователь не найден"); await usersRepository.UpdateAsync(new User() { IsActive = false }); return (id, string.Empty); } public async ValueTask<(Guid Id, string Error)> ActivateAsync(Guid id) { if (await usersRepository.GetByIdAsync(id) is null) return (Guid.Empty, "пользователь не найден"); await usersRepository.UpdateAsync(new User() { IsActive = true }); return (id, string.Empty); } }