Добавьте файлы проекта.

This commit is contained in:
2024-07-10 20:19:26 +07:00
parent 212a005438
commit e3c69229ad
74 changed files with 5674 additions and 0 deletions

View File

@ -0,0 +1,16 @@
using System.Collections.Generic;
using Yuna.Website.Server.Model;
namespace Yuna.Website.Server.Services.UserService
{
public interface IUserService
{
public Task<User?> GetById(long id);
public Task<User?> GetByUsername(string username);
public Task<IReadOnlyList<User>> GetList();
public Task<User?> Create(User user);
public Task<User?> Update(User user);
public Task<User?> Delete(long id);
}
}

View File

@ -0,0 +1,58 @@
using Yuna.Website.Server.Model;
using Yuna.Website.Server.Storage.Repositories.User;
namespace Yuna.Website.Server.Services.UserService
{
public class UserService : IUserService
{
private readonly IUserRepository _userRepository;
public UserService(IUserRepository userRepository)
{
_userRepository = userRepository;
}
public async Task<User?> Create(User user)
{
var existingUser = await _userRepository.GetByUsername(user.UserName);
if (existingUser is not null) return null;
var result = await _userRepository.Create(user);
return result;
}
public async Task<User?> Delete(long id)
{
var user = await _userRepository.GetById(id);
if (user is null) return null;
var result = await _userRepository.Delete(id);
return user;
}
public async Task<User?> GetById(long id)
{
var result = await _userRepository.GetById(id);
return result;
}
public async Task<User?> GetByUsername(string username)
{
var user = await _userRepository.GetByUsername(username);
return user;
}
public async Task<IReadOnlyList<User>> GetList()
{
var result = await _userRepository.GetList();
return result ?? [];
}
public async Task<User?> Update(User user)
{
var userFromDb = await _userRepository.GetById(user.Id);
if(userFromDb is null) return null;
return await _userRepository.Update(user);
}
}
}