* Added machine model, and new database relations

* Added first centralized database config and  added machine self-registration into db
* Fix database migration with new database
* Refactor
This commit is contained in:
Lucio Maranta
2018-01-17 10:24:18 +01:00
parent b26ec6cc43
commit fa485d902b
32 changed files with 457 additions and 141 deletions
@@ -0,0 +1,55 @@
using Step.Model.DatabaseModels;
using System;
using System.Linq;
using static Step.Config.ServerConfig;
namespace Step.Database.Controllers
{
public class MachineController : IDisposable
{
private DatabaseContext dbCtx;
public MachineController()
{
// Initialize database context
dbCtx = new DatabaseContext();
}
public void Dispose()
{
// Clear database context
dbCtx.Dispose();
}
public MachineModel GetMachineById(int id)
{
return dbCtx
.Machines
.Where(x => x.MachineId == id)
.SingleOrDefault();
}
public MachineModel GetMachineByUniqueId(string uniqueId)
{
return dbCtx
.Machines
.Where(x => x.UniqueId == uniqueId)
.SingleOrDefault();
}
public MachineModel Create( string uniqueId)
{
MachineModel machine= new MachineModel()
{
MachineId = 1,
Name = NcConfig.NcName,
UniqueId = uniqueId
};
dbCtx.Machines.Add(machine);
dbCtx.SaveChanges();
return machine;
}
}
}
@@ -0,0 +1,36 @@
using Step.Model.DatabaseModels;
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 MachinesUsersModel FindByUserId(int machineId, int userId)
{
return dbCtx
.MachinesUsers
.Include("Role")
.Where(x => x.MachineId == machineId && x.UserId == userId)
.FirstOrDefault();
}
}
}
+24 -10
View File
@@ -1,4 +1,5 @@
using System;
using System.Data.Entity.Migrations;
using System.Globalization;
using System.Linq;
using System.Web.Helpers;
@@ -23,16 +24,16 @@ namespace Step.Database.Controllers
dbCtx.Dispose();
}
public void Create(string username, string password, string firstName, string lastName, int roleId, CultureInfo language)
public void Create(string username, string password, string firstName, string lastName, CultureInfo language)
{
UserModel user = CreateUserModel(username, password, firstName, lastName, roleId, language);
UserModel user = CreateUserModel(username, password, firstName, lastName, language);
// Add to database
dbCtx.Users.Add(user);
// Commit changes
dbCtx.SaveChanges();
}
public static UserModel CreateUserModel(int id, string username, string password, string firstName, string lastName, int roleId, CultureInfo language)
public static UserModel CreateUserModel(int id, string username, string password, string firstName, string lastName, CultureInfo language)
{
// Create a new user model with params
return new UserModel()
@@ -42,20 +43,19 @@ namespace Step.Database.Controllers
Password = Crypto.HashPassword(password),
FirstName = firstName,
LastName = lastName,
RoleId = roleId,
SecurityStamp = Guid.NewGuid().ToString(),
Language = language
};
}
public static UserModel CreateUserModel(string username, string password, string firstName, string lastName, int roleId, CultureInfo language)
public static UserModel CreateUserModel(string username, string password, string firstName, string lastName, CultureInfo language)
{
return CreateUserModel(0, username, password, firstName, lastName, roleId, language);
return CreateUserModel(0, username, password, firstName, lastName, language);
}
public DTOUserModel GetUserInfo(int id)
{
// Find user by Id with Role object included
UserModel userDatabaseModel = dbCtx.Users.Include("Role").Where(u => u.UserId == id).FirstOrDefault();
UserModel userDatabaseModel = dbCtx.Users.Where(u => u.UserId == id).FirstOrDefault();
return new DTOUserModel()
{
@@ -64,20 +64,19 @@ namespace Step.Database.Controllers
FirstName = userDatabaseModel.FirstName,
LastName = userDatabaseModel.LastName,
Language = userDatabaseModel.Language,
RoleId = userDatabaseModel.RoleId
};
}
public UserModel FindById(int id)
{
// Find user by Id with Role object included
return dbCtx.Users.Include("Role").Where(u => u.UserId == id).FirstOrDefault();
return dbCtx.Users.Where(u => u.UserId == id).FirstOrDefault();
}
private UserModel FindByUsername(string username)
{
// Find user by Id with Role object included
return dbCtx.Users.Include("Role").Where(u => u.Username == username).FirstOrDefault();
return dbCtx.Users.Where(u => u.Username == username).FirstOrDefault();
}
public UserModel FindByUsernameAndPassword(string username, string password)
@@ -96,5 +95,20 @@ namespace Step.Database.Controllers
return user;
}
public void CreateCmsDefaultUserIfNotExists()
{
dbCtx.Users.AddOrUpdate
(
CreateUserModel(1, "cms", "cms", "cms", "cms", new CultureInfo("en"))
);
dbCtx.MachinesUsers.AddOrUpdate(
new MachinesUsersModel() { MachineId = 1, UserId = 1, RoleId = 1 }
);
// Commit changes
dbCtx.SaveChanges();
}
}
}