You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.0 KiB
66 lines
2.0 KiB
using DbContextLib;
|
|
using Model.DTO;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Model.Mappers;
|
|
using Model.Business;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Entities.SQLudeoDB;
|
|
using ModelToEntity;
|
|
|
|
namespace Services
|
|
{
|
|
public class UserDataService : IUserDataService<UserDTO?>
|
|
{
|
|
private readonly IUserDataService<User> dataServiceEF;
|
|
public UserDataService(IUserDataService<User> dataServiceEF)
|
|
{
|
|
this.dataServiceEF = dataServiceEF;
|
|
}
|
|
|
|
public async Task<UserDTO?> GetUserById(int id)
|
|
{
|
|
var user = await dataServiceEF.GetUserById(id);
|
|
return user.FromModelToDTO();
|
|
}
|
|
|
|
public async Task<UserDTO?> GetUserByUsername(string username)
|
|
{
|
|
var user = await dataServiceEF.GetUserByUsername(username);
|
|
return user.FromModelToDTO();
|
|
}
|
|
|
|
public async Task<IEnumerable<UserDTO?>> GetUsers(int page, int number)
|
|
{
|
|
var users = await dataServiceEF.GetUsers(page, number);
|
|
return users.Select(u => u.FromModelToDTO());
|
|
}
|
|
|
|
public async Task<bool> DeleteUser(int id)
|
|
{
|
|
var respons = await dataServiceEF.DeleteUser(id);
|
|
return respons;
|
|
}
|
|
|
|
public async Task<UserDTO?> UpdateUser(int id, UserDTO user)
|
|
{
|
|
var updatingUser = await dataServiceEF.UpdateUser(id, user);
|
|
return updatingUser.FromModelToDTO();
|
|
}
|
|
public async Task<UserDTO?> CreateUser(string username, string password, string email, bool isAdmin)
|
|
{
|
|
var newUserEntity = await dataServiceEF.CreateUser(username, password, email, isAdmin);
|
|
return newUserEntity.FromModelToDTO();
|
|
}
|
|
|
|
public async Task<T?> AddItem<T>(T? item) where T : class
|
|
{
|
|
var newItem = dataServiceEF.AddItem(item);
|
|
return await newItem;
|
|
}
|
|
}
|
|
}
|