Files
cms_thermo_active/Step.Database/Controllers/SessionsController.cs
T
Lucio Maranta 29c4747785 Merge branch 'feature/Remove_autoinc_from_db' into develop
# Conflicts:
#	Step.Database/Migrations/201809181022557_InitMigration.Designer.cs
#	Step.Database/Migrations/201809181022557_InitMigration.cs
#	Step.Database/Migrations/201810041521424_InitMigration.Designer.cs
#	Step.Database/Migrations/201810041521424_InitMigration.cs
#	Step.Database/Migrations/201810100646276_InitMigration.Designer.cs
#	Step.Database/Migrations/201810100646276_InitMigration.cs
#	Step.Database/Step.Database.csproj
WIP Alarm
2018-10-16 16:57:46 +02:00

81 lines
2.3 KiB
C#

using Step.Model.DatabaseModels;
using System;
using System.Collections.Generic;
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 List<MachineUserModel> FindMachineUserSession()
{
return dbCtx
.Sessions
.Include("MachineUser")
.Select(x => x.MachineUser)
.ToList();
}
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,
FirstLogin = DateTime.Now
};
// Add to database
dbCtx.Sessions.Add(session);
// Commit changes
dbCtx.SaveChanges();
}
}
}