* Refactor and fix machine self-registration into db

+ Added change language API
+ Added Role to user info
This commit is contained in:
Lucio Maranta
2018-01-17 12:35:34 +01:00
parent fa485d902b
commit 53223b0bef
8 changed files with 123 additions and 19 deletions
+37 -11
View File
@@ -5,6 +5,7 @@ using System.Linq;
using System.Web.Helpers;
using Step.Model.DatabaseModels;
using Step.Model.DTOModels;
using static Step.Config.ServerConfig;
namespace Step.Database.Controllers
{
@@ -52,10 +53,16 @@ namespace Step.Database.Controllers
return CreateUserModel(0, username, password, firstName, lastName, language);
}
public DTOUserModel GetUserInfo(int id)
public DTOUserModel GetUserInfo(int userId)
{
// Find user by Id with Role object included
UserModel userDatabaseModel = dbCtx.Users.Where(u => u.UserId == id).FirstOrDefault();
UserModel userDatabaseModel = dbCtx.Users.Where(u => u.UserId == userId).FirstOrDefault();
DTORoleModel roleModel = null;
using (MachinesUsersController machinesUsersControler = new MachinesUsersController())
{
roleModel = machinesUsersControler.GetUserRole(MachineConfig.MachineId, userId);
}
return new DTOUserModel()
{
@@ -64,6 +71,7 @@ namespace Step.Database.Controllers
FirstName = userDatabaseModel.FirstName,
LastName = userDatabaseModel.LastName,
Language = userDatabaseModel.Language,
Role = roleModel
};
}
@@ -96,19 +104,37 @@ namespace Step.Database.Controllers
return user;
}
public void CreateCmsDefaultUserIfNotExists()
public void CreateCmsDefaultUserIfNotExists(int machineId)
{
dbCtx.Users.AddOrUpdate
(
CreateUserModel(1, "cms", "cms", "cms", "cms", new CultureInfo("en"))
UserModel user = FindByUsername("cms");
if (user == null)
{
user = dbCtx.Users.Add(
CreateUserModel("cms", "cms", "cms", "cms", new CultureInfo("en"))
);
dbCtx.MachinesUsers.AddOrUpdate(
new MachinesUsersModel() { MachineId = 1, UserId = 1, RoleId = 1 }
);
// Commit changes
dbCtx.SaveChanges();
}
// Commit changes
dbCtx.SaveChanges();
using (MachinesUsersController machineUserController = new MachinesUsersController())
{
MachinesUsersModel machineUser = machineUserController.FindByUserId(machineId, user.UserId);
if (machineUser == null)
machineUserController.Create(machineId, user.UserId, 1);
}
}
public void ChangeUserLanguage(int userId, CultureInfo newLanguage)
{
UserModel user = FindById(userId);
if(user != null)
{
user.Language = newLanguage;
dbCtx.SaveChanges();
}
}
}
}