Exemple #1
0
        public async Task <IActionResult> Signup(RegistrationViewModel model)
        {
            try
            {
                //verify that email or username is not in use
                if (await userManager.FindByNameAsync(model.Username) == null && await userManager.FindByEmailAsync(model.Email) == null)
                {
                    var AppUser = new AppUser()
                    {
                        Email       = model.Email,
                        PhoneNumber = model.PhoneNumber,
                        UserName    = model.Username
                    };

                    var result = await userManager.CreateAsync(AppUser, model.Password);

                    if (result.Succeeded)
                    {
                        //get the AppUser by Id
                        var CreatedUser = GetUserByEmail(model.Email).Result;

                        //assign the user to a role
                        var roleResult = await userManager.AddToRoleAsync(CreatedUser, "user");

                        if (roleResult.Succeeded)
                        {
                            //build the koinonia user entity
                            KoinoniaUserModel koinoniaUsers = new KoinoniaUserModel()
                            {
                                Id            = Guid.Parse(CreatedUser.Id),
                                FirstName     = model.FirstName,
                                LastName      = model.LastName,
                                Gender        = model.Gender,
                                stateOfOrigin = model.StateOfOrigin,
                            };
                            //pass the model to the UserService
                            userService.AddNewUser(koinoniaUsers).Wait();

                            //call method to auto follow the leadpastor
                            AutoFollow(koinoniaUsers.Id).Wait();
                            return(Ok(new { message = "Your Account has been created succesfully" }));
                        }
                        return(BadRequest("User was not added to a role"));
                    }
                    return(BadRequest("Registration Failed"));
                }
                return(BadRequest("Username and/or Email is Already in use"));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #2
0
        public async Task <KoinoniaUsers> AddNewUser(KoinoniaUserModel model)
        {
            //build new user entity
            KoinoniaUsers koinoniaUsers = new KoinoniaUsers()
            {
                Id            = model.Id,
                FirstName     = model.FirstName,
                LastName      = model.LastName,
                Gender        = model.Gender,
                stateOfOrigin = model.stateOfOrigin,
            };

            var NewUser = await usersRepo.AddNewAsync(koinoniaUsers);

            usersRepo.SaveChangesAsync().Wait();
            return(NewUser);
        }