slarny4/Demo1/Data/Repository/SQLUserRepositoryImpl.cs

87 lines
2.4 KiB
C#
Raw Permalink Normal View History

2024-10-28 12:42:04 +00:00
using System;
using System.Collections.Generic;
using System.Linq;
using Demo.Data.RemoteData.RemoteDataBase.DAO; // DAO User
using UserDomain = Demo.Domain.Models.User; // Доменная модель
using UserEntity = Demo.Data.LocalData.Entity.User; // Локальная сущность
namespace Demo.Data.Repository
{
public class SQLUserRepositoryImpl : IUserRepository
{
private readonly RemoteDatabaseContext _context;
public SQLUserRepositoryImpl(RemoteDatabaseContext context)
{
_context = context;
}
public void AddUser(UserDomain user)
{
var daoUser = new UserEntity // Используем локальную сущность
{
Id = user.Id,
FIO = user.FIO,
GroupID = user.GroupID
};
2024-11-14 11:24:07 +00:00
_context.User.Add(daoUser);
2024-10-28 12:42:04 +00:00
_context.SaveChanges();
}
2024-11-14 11:24:07 +00:00
public IEnumerable<UserDomain> GetAllUser()
2024-10-28 12:42:04 +00:00
{
2024-11-14 11:24:07 +00:00
return _context.User.Select(u => new UserDomain
2024-10-28 12:42:04 +00:00
{
Id = u.Id,
FIO = u.FIO,
GroupID = u.GroupID
}).ToList();
}
public UserDomain GetUserById(Guid id)
{
2024-11-14 11:24:07 +00:00
var daoUser = _context.User.Find(id);
2024-10-28 12:42:04 +00:00
if (daoUser == null) return null;
return new UserDomain
{
Id = daoUser.Id,
FIO = daoUser.FIO,
GroupID = daoUser.GroupID
};
}
public void UpdateUser(UserDomain user)
{
2024-11-14 11:24:07 +00:00
var daoUser = _context.User.Find(user.Id);
2024-10-28 12:42:04 +00:00
if (daoUser != null)
{
daoUser.FIO = user.FIO;
daoUser.GroupID = user.GroupID;
_context.SaveChanges();
}
}
public void DeleteUser(Guid id)
{
2024-11-14 11:24:07 +00:00
var daoUser = _context.User.Find(id);
2024-10-28 12:42:04 +00:00
if (daoUser != null)
{
2024-11-14 11:24:07 +00:00
_context.User.Remove(daoUser);
2024-10-28 12:42:04 +00:00
_context.SaveChanges();
}
}
2024-11-14 11:24:07 +00:00
// Реализуем метод GetAllUsers
public IEnumerable<UserDomain> GetAllUsers()
{
return _context.User.Select(u => new UserDomain
{
Id = u.Id,
FIO = u.FIO,
GroupID = u.GroupID
}).ToList();
}
2024-10-28 12:42:04 +00:00
}
}