public async Task <NewConsumerDto> Create(NewConsumerDto newConsumerDto) { if (newConsumerDto == null) { throw new ArgumentNullException(nameof(newConsumerDto)); } var password = newConsumerDto.Password; if (string.IsNullOrWhiteSpace(password)) { throw new Exception("Password is required"); } if (_repository.FindByEmail(newConsumerDto.Email).Result != null) { throw new Exception("Email \"" + newConsumerDto.Email + "\" is already taken"); } var newConsumer = _mapper.Map <Consumer>(newConsumerDto); await _repository.Create(newConsumer); await _userService.Create(newConsumer, newConsumerDto); var consumerDto = _mapper.Map <NewConsumerDto>(newConsumer); return(consumerDto); }
public async Task <User> Create(Consumer newConsumer, NewConsumerDto newConsumerDto) { var newUser = new User { Consumer = newConsumer, Email = newConsumer.Email, UserName = newConsumer.Email }; var result = await _userManager.CreateAsync(newUser, newConsumerDto.Password); if (result.Succeeded) { await _userManager.AddToRoleAsync(newUser, newConsumerDto.Role); return(newUser); } return(null); }
public async Task <IActionResult> Post([FromBody] NewConsumerDto newConsumerDto) { var createdConsumer = await _consumersService.Create(newConsumerDto); return(Ok(createdConsumer)); }