示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        public async Task <IActionResult> Post([FromBody] NewConsumerDto newConsumerDto)
        {
            var createdConsumer = await _consumersService.Create(newConsumerDto);

            return(Ok(createdConsumer));
        }