public async Task <BaseResponseDto <bool> > Insert(InsertUserDto insertUserDto) { try { return(await _userService.Insert(insertUserDto)); } catch (Exception ex) { _logger.LogError($"Insert user error: {ex}"); return(new BaseResponseDto <bool>() .GenerateGeneralFailedResponse(ex.ToString())); } }
public async Task <CustomMessage> Create(InsertUserDto userDto, string password) { if (await userRepo.GetByEmpCode(userDto.User.EmpCode) != null) { throw new AppException("User is already exists"); } var user = mapper.Map <User>(userDto.User); if (string.IsNullOrWhiteSpace(password)) { throw new AppException("Password is required"); } if (GetUserByUsername(user.Username) != null) { throw new AppException("Username \"" + user.Username + "\" is already taken"); } byte[] passwordHash, passwordSalt; CreatePasswordHash(password, out passwordHash, out passwordSalt); user.PasswordHash = passwordHash; user.PasswordSalt = passwordSalt; user.CompanyCode = compInfoRepo.GetCompanyCode(); await userRepo.Insert(user); foreach (var item in userDto.UserPayLocations) { item.EmpCode = user.EmpCode; item.CompanyCode = user.CompanyCode; } foreach (var item in userDto.UserDepartments) { item.EmpCode = user.EmpCode; item.CompanyCode = user.CompanyCode; } await userRepo.InsertUserPayLocation(userDto.UserPayLocations); await userRepo.InsertUsertDepartment(userDto.UserDepartments); return(CustomMessageHandler.RecordAdded()); }
public async Task <BaseResponseDto <bool> > Insert(InsertUserDto insertUserDto) { if (insertUserDto == null) { _logger.LogError("InsertUserDto is null"); return(new BaseResponseDto <bool>().GenerateFailedResponse(ErrorCodes.BadRequest)); } if (string.IsNullOrEmpty(insertUserDto.Email) || string.IsNullOrEmpty(insertUserDto.Password)) { _logger.LogError("Email or password is empty"); return(new BaseResponseDto <bool>().GenerateFailedResponse(ErrorCodes.BadRequest)); } var userRepo = _unitOfWork.GetRepository <User>(); var userQuery = MongoExtension.GetBuilders <User>() .Regex(x => x.Email, insertUserDto.Email.MongoIgnoreCase()); var existed = await userRepo.Count(userQuery); if (existed != 0) { _logger.LogError($"Email exists: {insertUserDto.Email}"); return(new BaseResponseDto <bool>().GenerateFailedResponse(ErrorCodes.EmailExists)); } var user = _mapper.Map <User>(insertUserDto); user.Password = user.Password.HashMd5(); user.Role = UserRole.User; await userRepo.Insert(user); _logger.LogInformation("Insert user success"); return(new BaseResponseDto <bool>().GenerateSuccessResponse(true)); }