public async Task <RepositoryResponse <MixPortalUserViewModel> > Save( [FromBody] MixPortalUserViewModel model) { var result = new RepositoryResponse <MixPortalUserViewModel>() { IsSucceed = true }; if (model != null && model.User != null) { var user = await _userManager.FindByIdAsync(model.User.Id); user.Email = model.User.Email; user.FirstName = model.User.FirstName; user.LastName = model.User.LastName; user.Avatar = model.User.Avatar; var updInfo = await _userManager.UpdateAsync(user); result.IsSucceed = updInfo.Succeeded; if (result.IsSucceed) { var saveData = await model.UserData.SaveModelAsync(true); result.IsSucceed = saveData.IsSucceed; result.Errors = saveData.Errors; result.Exception = saveData.Exception; } if (result.IsSucceed && model.IsChangePassword) { var changePwd = await _userManager.ChangePasswordAsync(model.User, model.ChangePassword.CurrentPassword, model.ChangePassword.NewPassword); if (!changePwd.Succeeded) { foreach (var err in changePwd.Errors) { result.Errors.Add(err.Description); } } else { // Remove other token if change password success var refreshToken = User.Claims.SingleOrDefault(c => c.Type == "RefreshToken")?.Value; await RefreshTokenViewModel.Repository.RemoveModelAsync(r => r.Id != refreshToken); } } MixFileRepository.Instance.EmptyFolder($"{MixFolders.MixCacheFolder}/Mix/Cms/Lib/ViewModels/Account/MixUsers/_{model.User.Id}"); return(result); } return(result); }
public async Task <ActionResult <MixPortalUserViewModel> > MyProfile() { string id = User.Claims.SingleOrDefault(c => c.Type == "Id")?.Value; ApplicationUser user = await _userManager.FindByIdAsync(id);; if (user != null) { var mixUser = new MixPortalUserViewModel(user); await mixUser.LoadUserDataAsync(); return(Ok(new RepositoryResponse <MixPortalUserViewModel>() { IsSucceed = true, Data = mixUser })); } return(BadRequest()); }
public async Task <ActionResult> Details(string viewType, string id = null) { ApplicationUser user = string.IsNullOrEmpty(id) ? new ApplicationUser() : await _userManager.FindByIdAsync(id);; if (user != null) { var mixUser = new MixPortalUserViewModel(user); await mixUser.LoadUserDataAsync(); return(Ok(new RepositoryResponse <MixPortalUserViewModel>() { IsSucceed = true, Data = mixUser })); } return(BadRequest()); }