78 lines
2.3 KiB
C#
78 lines
2.3 KiB
C#
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Linq;
|
||
|
using System.Threading.Tasks;
|
||
|
using presence.data.RemoteData;
|
||
|
using presence.data.RemoteData.RemoteDataBase;
|
||
|
using presence.data.RemoteData.RemoteDataBase.DAO;
|
||
|
using presence.data.Repository;
|
||
|
|
||
|
namespace data.Repository
|
||
|
{
|
||
|
public class AdminRepositoryImp: IAdminRepository
|
||
|
{
|
||
|
private readonly RemoteDataBaseContext _remoteDataBaseContext;
|
||
|
|
||
|
public AdminRepositoryImp(RemoteDataBaseContext remoteDataBaseContext)
|
||
|
{
|
||
|
_remoteDataBaseContext = remoteDataBaseContext;
|
||
|
}
|
||
|
|
||
|
public bool AddStudents(GroupDao group, List<string> students)
|
||
|
{
|
||
|
_remoteDataBaseContext.Groups.Add(group);
|
||
|
foreach (string student in students)
|
||
|
{
|
||
|
var user = new UserDao
|
||
|
{
|
||
|
FIO = student,
|
||
|
GroupId = group.Id,
|
||
|
Group = _remoteDataBaseContext.Groups.Where(x => x.Id == group.Id).FirstOrDefault()
|
||
|
};
|
||
|
_remoteDataBaseContext.Users.Add(user);
|
||
|
}
|
||
|
_remoteDataBaseContext.SaveChanges();
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
public void DeleteUserFromGroup(int userId, int groupId)
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
public void DeleteGroup(int groupId)
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
public void ClearPresence()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
public IEnumerable<GroupDao> GetAllGroupsWithStudents()
|
||
|
{
|
||
|
return _remoteDataBaseContext.Groups.Select(x => new GroupDao
|
||
|
{
|
||
|
Id = x.Id,
|
||
|
Name = x.Name,
|
||
|
User = _remoteDataBaseContext.Users.Where(it => it.GroupId == x.Id).ToList()}).ToList();
|
||
|
}
|
||
|
|
||
|
public UserDao GetStudentInfo(int userId)
|
||
|
{
|
||
|
return _remoteDataBaseContext.Users.Where(x => x.UserId == userId).FirstOrDefault();
|
||
|
}
|
||
|
|
||
|
public bool RemoveUserById(int userId, int groupId)
|
||
|
{
|
||
|
var userLocal = _remoteDataBaseContext.Users
|
||
|
.Where(x => x.UserId== userId && x.GroupId == groupId).FirstOrDefault();
|
||
|
if (userLocal == null) return false;
|
||
|
|
||
|
_remoteDataBaseContext.Users.Remove(userLocal);
|
||
|
_remoteDataBaseContext.SaveChanges();
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
}
|