99c2e8dc01
General refactor
70 lines
2.0 KiB
C#
70 lines
2.0 KiB
C#
using Step.Model.DatabaseModels;
|
|
using System;
|
|
using System.Linq;
|
|
|
|
namespace Step.Database.Controllers
|
|
{
|
|
public class SessionsController : IDisposable
|
|
{
|
|
private DatabaseContext dbCtx;
|
|
|
|
public SessionsController()
|
|
{
|
|
// Initialize database context
|
|
dbCtx = new DatabaseContext();
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
// Clear database context
|
|
dbCtx.Dispose();
|
|
}
|
|
|
|
public SessionModel FindSessionByToken(string token)
|
|
{
|
|
return dbCtx
|
|
.Sessions
|
|
.Where(x => x.Token == token) // Find session by token
|
|
.SingleOrDefault();
|
|
}
|
|
|
|
public void DeleteUserSessions(int machineUserId)
|
|
{
|
|
dbCtx
|
|
.Sessions
|
|
.RemoveRange( // Delete rows
|
|
dbCtx
|
|
.Sessions
|
|
.Where(x => x.MachineUserId == machineUserId) // Find all the session with matching machineUserId
|
|
);
|
|
// Commit changes
|
|
dbCtx.SaveChanges();
|
|
}
|
|
|
|
public void DeleteSessionsByUserAndMachineId(int machineId, int userId)
|
|
{
|
|
MachineUserModel machineUser = null;
|
|
using (MachinesUsersController machinesUsersController = new MachinesUsersController())
|
|
{
|
|
// Find machine_user id
|
|
machineUser = machinesUsersController.FindByUserId(machineId, userId);
|
|
}
|
|
|
|
DeleteUserSessions(machineUser.MachineUserId);
|
|
}
|
|
|
|
public void Create(int machineUserId, string token)
|
|
{
|
|
// Create session model
|
|
SessionModel session = new SessionModel()
|
|
{
|
|
MachineUserId = machineUserId,
|
|
Token = token
|
|
};
|
|
// Add to database
|
|
dbCtx.Sessions.Add(session);
|
|
// Commit changes
|
|
dbCtx.SaveChanges();
|
|
}
|
|
}
|
|
} |