public async Task <JsonResult> SignUp([FromBody] SignUpViewModel vm) { try { if (ModelState.IsValid) { // check if any values tracked in Auth0 have changed var extId = await _authAdapter.SignUpUser(vm); // save to our db now var user = new AppUser() { FirstName = vm.FirstName, LastName = vm.LastName, Email = vm.Email, ExternalId = extId, AvatarUrl = Avatars.GetAvatarUrl(vm.FirstName, vm.LastName, vm.Email), IsDeleted = false, IsSuspended = false, UserRoles = new List <AppUserRole> { new AppUserRole { RoleId = 2 } } // default to free user }; _userRepo.AddUser(user); if (_userRepo.Base.SaveAll(User)) { var newVm = user.ToViewModel(); Response.StatusCode = (int)HttpStatusCode.OK; return(Json(newVm)); } else { Response.StatusCode = (int)HttpStatusCode.InternalServerError; return(Json(MsgFactory.Error("Unable to save new user"))); } } else { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json(MsgFactory.Error(ModelState))); } } catch (Exception ex) { Response.StatusCode = (int)HttpStatusCode.InternalServerError; return(Json(MsgFactory.Error(ex))); } }