using Step.Model.DatabaseModels; using Step.Model.DTOModels; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; 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 FindById(int id) { return dbCtx .MachinesUsers .Include("Role") .Include("Machine") .Include("User") .Where(x => x.MachineUserId == id) .FirstOrDefault(); } public MachineUserModel Create(int machineId, int userId, int roleId) { MachineUserModel machine = new MachineUserModel() { MachineId = machineId, UserId = userId, RoleId = roleId }; dbCtx.MachinesUsers.Add( machine ); dbCtx.SaveChanges(); return machine; } public DTORoleModel GetUserRole(int machineId, int userId) { RoleModel role = dbCtx .MachinesUsers .Include("Role") .Where(x => x.MachineId == machineId && x.UserId == userId) .FirstOrDefault().Role; return new DTORoleModel() { Id = role.RoleId, Name = role.Name }; } } }