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; using Utils; namespace Services { public class UserDataService : IUserDataService { private readonly IUserDataService dataServiceEF; public UserDataService(IUserDataService dataServiceEF) { this.dataServiceEF = dataServiceEF; } public async Task GetUserById(int id) { var user = await dataServiceEF.GetUserById(id); return user.FromModelToDTO(); } public async Task GetUserByUsername(string username) { var user = await dataServiceEF.GetUserByUsername(username); return user.FromModelToDTO(); } public async Task> GetUsers(int page, int number) { var users = await dataServiceEF.GetUsers(page, number); return users.Select(u => u.FromModelToDTO()); } public async Task DeleteUser(int id) { var respons = await dataServiceEF.DeleteUser(id); return respons; } public async Task UpdateUser(int id, UserDTO user) { var updatingUser = await dataServiceEF.UpdateUser(id, user); return updatingUser.FromModelToDTO(); } public async Task CreateUser(string username, string password, string email, bool isAdmin) { var newUserEntity = await dataServiceEF.CreateUser(username, password, email, isAdmin); return newUserEntity.FromModelToDTO(); } public async Task AddItem(UserDTO? item) { var newItem = await dataServiceEF.AddItem(item.FromDTOToModel()); if (newItem == null) { throw new InvalidOperationException(); } return newItem.FromModelToDTO(); } public Task DeleteItem(int id) { var succes = dataServiceEF.DeleteItem(id); return succes; } public async Task UpdateItem(int? id, TDto? newItem) where TDto : class { var item = await dataServiceEF.UpdateItem(id, newItem); return item.FromModelToDTO(); } public async Task> GetItems(int page, int count, string? orderingPropertyName = null, object? valueProperty = null) { var items = await dataServiceEF.GetItems(page, count, orderingPropertyName, valueProperty); if (items == null) { throw new NoDataFoundException(); } return items.Select(item => item.FromModelToDTO()); } public Task> GetParagraphs(int page, int number) { throw new NotImplementedException(); } public Task GetParagraphById(int id) { throw new NotImplementedException(); } public Task GetParagraphByTitle(string title) { throw new NotImplementedException(); } public Task DeleteParagraph(int id) { throw new NotImplementedException(); } public Task UpdateParagraph(int id, ParagraphDTO paragraphDTO) { throw new NotImplementedException(); } public Task CreateParagraph(string title, string content, string info, string query, string comment) { throw new NotImplementedException(); } public Task> GetSuccesses(int page, int number) { throw new NotImplementedException(); } public Task GetSuccessByUserId(int id) { throw new NotImplementedException(); } public Task GetSuccessByInquiryId(int id) { throw new NotImplementedException(); } public Task DeleteSuccess(int id) { throw new NotImplementedException(); } public Task UpdateSuccess(int id, SuccessDTO success) { throw new NotImplementedException(); } public Task CreateSuccess(int userId, int inquiryId, bool isFinished) { throw new NotImplementedException(); } } }