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.
API_SQLuedo/API_SQLuedo/Services/UserDataService.cs

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;
}
}
}