Example #1
0
        public async Task <IActionResult> Register([FromBody] RegisterUserRquestModel request)
        {
            var userExist = await this.userManager.FindByNameAsync(request.Email);

            if (userExist == null)
            {
                var user = new IPCS.Entities.User
                {
                    UserName    = request.Email,
                    Email       = request.Email,
                    LastName    = request.LastName,
                    FirstName   = request.FirstName,
                    PhoneNumber = request.PhoneNumber,
                    Valid       = true
                };
                var result = await this.userManager.CreateAsync(user, request.Password);

                if (result.Succeeded)
                {
                    var identityResult = await this.userManager.AddToRoleAsync(user, "ROLE_USER");

                    SendEmailActivateAccount(user);
                    this.logger.LogInformation(3, "User created a new account with password.");
                    return(Ok());
                }

                var resultString = new StringBuilder();
                foreach (var item in result.Errors)
                {
                    resultString.AppendLine(item.Description);
                }
                return(BadRequest(resultString.ToString()));
            }
            return(BadRequest(localizer.GetString("errors.user_registered")));
        }
        public async Task <Result <User> > Register(RegisterUserRquestModel userInput)
        {
            var user = new User
            {
                Email    = userInput.Email,
                UserName = userInput.UserName,
            };

            var identityResult = await this.userManager
                                 .CreateAsync(user, userInput.Password);

            var isRegisterSuccessful = identityResult.Succeeded;

            if (isRegisterSuccessful)
            {
                await this.publisher.Publish(new UserCreatedMessage { UserId = user.Id });
            }

            var errors = identityResult
                         .Errors
                         .Select(e => e.Description);

            return(identityResult.Succeeded
                ? Result <User> .SuccessWith(user)
                : Result <User> .Failure(errors));
        }
        public async Task <ActionResult> Register(RegisterUserRquestModel userModel)
        {
            var result = await this.identityService
                         .Register(userModel);


            if (!result.Succeeded)
            {
                return(BadRequest(result.Errors));
            }

            //TODO: Replaced with new solution using RabbitMQ
            //var nutritionInputModel = new RegisterNutritionUserInputModel { UserId = result.Data.Id };
            //var exerciseUserInputModel = new RegisterExerciseUserInputModel { UserId = result.Data.Id };
            //var articleUserInputModel = new RegisterArticleUserInputModel { UserId = result.Data.Id };

            //await this.nutritionRegisterService.Register(nutritionInputModel);
            //await this.exercisesRegisterService.Register(exerciseUserInputModel);
            //await this.articlesRegisterService.Register(articleUserInputModel);

            return(Ok(result.Data));
        }