示例#1
0
        public async Task <bool> Create(UserCreateSaveModel userCreateSaveModel, int operatingUserId)
        {
            //check for duplicate username
            if (await _context.UsersTbl
                .Include(udt => udt.UserDetailsTbl)
                .AsNoTracking()
                .AnyAsync(u =>
                          u.Username == userCreateSaveModel.User.Username &&
                          u.UserId != userCreateSaveModel.User.UserId &&
                          !u.UserDetailsTbl.IsDeleted
                          )
                )
            {
                throw new BadRequestException(string.Format(UserValidationMessage.USERNAME_ALREADY_TAKEN, userCreateSaveModel.User.Username));
            }


            //byte[] passwordHash, passwordSalt;
            //CreatePasswordHash(password, out passwordHash, out passwordSalt);

            //user.PasswordHash = passwordHash;
            //user.PasswordSalt = passwordSalt;

            UsersTbl usersTbl = new UsersTbl
            {
                UserDetailsTbl = new UserDetailsTbl()
                {
                    UserContentTbl = await _userContentService.GetNewUserContent(userCreateSaveModel.User.UserId)
                }
            };

            //populate table objects
            _mapper.Map(userCreateSaveModel.User, usersTbl);
            _mapper.Map(userCreateSaveModel.UserDetailsBaseAdmin, usersTbl.UserDetailsTbl);

            usersTbl.UserDetailsTbl.CreatedBy  = operatingUserId;
            usersTbl.UserDetailsTbl.ModifiedBy = operatingUserId;

            await _context.AddAsync(usersTbl);

            await _context.SaveChangesAsync();

            //after save update models with data
            //_mapper.Map(usersTbl, userSaveModel.User);
            //_mapper.Map(usersTbl.UserDetailsTbl, userSaveModel.UserDetail);

            return(true);
        }
示例#2
0
 public async Task <ActionResult <bool> > Create([FromBody] UserCreateSaveModel userCreateSaveModel)
 {
     return(await _userService.Create(userCreateSaveModel, _operatingUser.GetUserId(HttpContext)));
 }