Files
cms_thermo_active/Step.Database/Controllers/SessionsController.cs
T
Lucio Maranta c35bbbf911 Fix Nc Data API
2018-06-06 16:23:36 +02:00

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
.FirstOrDefault();
}
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();
}
}
}