public async Task <object> Edit([FromBody] User user) { if (!ModelState.IsValid) { return(BadRequest(ModelState.Values.SelectMany(start => start.Errors).Select(error => error.ErrorMessage).Take(1).ElementAt(0))); } UserEditResponse editUser = await _userService.Edit(user); if (editUser.ErrorId) { return(BadRequest("error.user.invalid-id")); } if (editUser.ErrorEmail) { return(BadRequest("error.user.email-exists")); } if (editUser.ErrorCpf) { return(BadRequest("error.user.cpf-exists")); } return(Ok(editUser)); }
public async Task <UserEditResponse> EditUser(UserEditRequest request) { var response = new UserEditResponse(); var currentUser = _cacheManager.GetCachedCurrentUser(request.CurrentUserId); if (!currentUser.IsAdmin) { response.SetInvalid(); return(response); } if (await _organizationRepository.Any(x => x.Id == currentUser.OrganizationId && !x.IsActive)) { response.SetInvalid(); response.ErrorMessages.Add("organization_not_found"); return(response); } var entity = _cacheManager.GetCachedUser(request.UserUid); if (entity.OrganizationId != currentUser.OrganizationId) { response.SetInvalid(); return(response); } var language = await _languageRepository.Select(x => x.Uid == request.LanguageUid); if (language.IsNotExist()) { response.SetInvalid(); response.ErrorMessages.Add("language_not_found"); return(response); } var updatedEntity = _userFactory.CreateEntityFromRequest(request, entity, language); var result = await _userRepository.Update(request.CurrentUserId, updatedEntity); if (result) { _cacheManager.UpsertUserCache(entity, _userFactory.MapCurrentUser(entity)); response.Item = _userFactory.CreateDtoFromEntity(entity); response.Status = ResponseStatus.Success; return(response); } response.SetFailed(); return(response); }
/// <summary> /// 获取单挑数据 /// </summary> /// <param name="request"></param> /// <returns></returns> public UserEditResponse UserEdit(UserEditRequest request) { UserEditResponse response = new UserEditResponse(); if (request.Uid < 0) { response.Status = false; response.Message = "网络错误请重试"; return(response); } var res = UserDal.Instance.EditUser(request.Uid); if (res != null) { response.Status = true; response.Message = "请求成功"; response.UserEdit = res; } return(response); }
/// <summary> /// Edit the specified user. /// </summary> /// <returns>The edit.</returns> /// <param name="user">User.</param> public async Task <UserEditResponse> Edit(User user) { // Edit response UserEditResponse userEditResponse = new UserEditResponse(); // Check ID int id = int.TryParse(user.ID.ToString(), out id) ? id : 0; if (id == 0) { userEditResponse.ErrorId = true; return(userEditResponse); } // Check if user email or cpf exists User[] checkUser = await(from u in db.Users where (u.Email == user.Email || u.Cpf == user.Cpf) where u.ID != user.ID select u).Take(1).ToArrayAsync(); if (checkUser.Any()) { if (checkUser.FirstOrDefault().Email == user.Email) { userEditResponse.ErrorEmail = true; } if (checkUser.FirstOrDefault().Cpf == user.Cpf) { userEditResponse.ErrorCpf = true; } return(userEditResponse); } user.Password = new HashPassword().Generate(user.Password); user.UpdatedAt = DateTime.Now; db.Users.Add(user); // Save Log int userId = int.Parse(Thread.CurrentPrincipal.Identity.Name); Log log = new Log { UserID = userId, Action = "user.edit" }; await new LogService().Save(log); Claim[] claims = { new Claim(ClaimTypes.Name, user.FirstName), new Claim(ClaimTypes.Email, user.Email), new Claim(ClaimTypes.Role, user.Role) }; userEditResponse.TokenType = "Bearer"; userEditResponse.AccessToken = _tokenManager.Generate(claims); return(userEditResponse); }