16c33979d5
Added update maintenance
91 lines
2.6 KiB
C#
91 lines
2.6 KiB
C#
using Step.Model.DatabaseModels;
|
|
using Step.Model.DTOModels;
|
|
using System;
|
|
using System.Linq;
|
|
|
|
namespace Step.Database.Controllers
|
|
{
|
|
public class MachinesUsersController : IDisposable
|
|
{
|
|
private DatabaseContext dbCtx;
|
|
|
|
public MachinesUsersController()
|
|
{
|
|
// Initialize database context
|
|
dbCtx = new DatabaseContext();
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
// Clear database context
|
|
dbCtx.Dispose();
|
|
}
|
|
|
|
public MachineUserModel FindByUserId(int machineId, int userId)
|
|
{
|
|
return dbCtx
|
|
.MachinesUsers
|
|
.Include("Role") // TODO Add machine and user info?
|
|
.Where(x => x.MachineId == machineId && x.UserId == userId)
|
|
.FirstOrDefault();
|
|
}
|
|
|
|
public MachineUserModel FindByIdWithData(int id)
|
|
{
|
|
return dbCtx
|
|
.MachinesUsers
|
|
.Include("Role") // Join with Role, Machine, User
|
|
.Include("Machine")
|
|
.Include("User")
|
|
.Where(x => x.MachineUserId == id)
|
|
.FirstOrDefault();
|
|
}
|
|
|
|
public MachineUserModel Create(int machineId, int userId, int roleId)
|
|
{
|
|
// Create database model
|
|
MachineUserModel machine = new MachineUserModel()
|
|
{
|
|
MachineId = machineId,
|
|
UserId = userId,
|
|
RoleId = roleId
|
|
};
|
|
// Add into database
|
|
dbCtx.MachinesUsers.Add(
|
|
machine
|
|
);
|
|
// Commit changes
|
|
dbCtx.SaveChanges();
|
|
|
|
return machine;
|
|
}
|
|
|
|
public DTORoleModel GetUserRoleData(int machineId, int userId)
|
|
{
|
|
RoleModel role = dbCtx
|
|
.MachinesUsers
|
|
.Include("Role")
|
|
.Where(x => x.MachineId == machineId && x.UserId == userId) // Find by machine id and user id, joining with role
|
|
.FirstOrDefault().Role;
|
|
|
|
return new DTORoleModel()
|
|
{
|
|
Id = role.RoleId,
|
|
Name = role.Name
|
|
};
|
|
}
|
|
|
|
public int CompareUsersRole(int firstUserId, int secondUserId, int machineId)
|
|
{
|
|
MachineUserModel firstUser = FindByUserId(machineId, firstUserId);
|
|
MachineUserModel secondUser = FindByUserId(machineId, secondUserId);
|
|
|
|
if (firstUser.Role.Level == secondUser.Role.Level)
|
|
return 0;
|
|
else if (firstUser.Role.Level > secondUser.Role.Level)
|
|
return 1;
|
|
else
|
|
return -1;
|
|
}
|
|
}
|
|
} |