Esempio n. 1
0
 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()));
     }
 }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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));
        }