public async Task <IActionResult> UpdateRole([FromBody] User updateUser, [FromHeader] string APIKey) { try { //if (updateUser.UserName == "" || updateUser.Role == "") // throw new Exception("NOT DONE: An error occured"); var userExists = await UserDatabaseAccess.UserExists(updateUser.UserName, base._context); if (!userExists) { throw new Exception("NOT DONE: Username does not exist"); } var user = await UserDatabaseAccess.GetUserWithName(updateUser.UserName, base._context); string[] allowedRoles = { "Admin", "User" }; if (!allowedRoles.Contains(updateUser.Role)) { throw new Exception("NOT DONE: Role does not exist"); } else if (allowedRoles.Contains(updateUser.Role)) { await UserDatabaseAccess.ChangeRole(updateUser, user, _context); var authUser = await UserDatabaseAccess.GetUser(APIKey, base._context); string Method = this.HttpContext.Request.Method; string Path = this.HttpContext.Request.Path; var Log = authUser.Role + " requested " + Method + " " + Path; await UserDatabaseAccess.AddLog(Log, authUser, base._context); return(StatusCode(200, "DONE")); } throw new Exception("NOT DONE: An error occured"); } catch (Exception e) { return(StatusCode(400, e.Message)); } }