public async Task <StoreUserModel> CreateUserAsync(CreateStoreUserModel createStoreUserModel)
        {
            var storeUser = mapper.Map <StoreUser>(createStoreUserModel);

            var user = await userManager.CreateAsync(storeUser, createStoreUserModel.Password);

            if (user.Succeeded)
            {
                var token = await userManager.GenerateEmailConfirmationTokenAsync(storeUser);

                var confirmPasswordLink = string.Concat(GlobalConfig.APIBaseUrl, $"/api/security/user/confirmemail?token={Base64UrlEncoder.Encode(token)}&email={storeUser.Email}");
                var result = mapper.Map <StoreUserModel>(storeUser);


                var messageBuilder = new EmailBuilder(configuration)
                {
                    To         = new[] { storeUser.Email },
                    Subject    = "Welcome To Bread2Bun",
                    IsBodyHtml = true,
                    Body       = $"Hi {storeUser.FullName} , please click on the link below so that we can confirm your email address. <br/><br/>" +
                                 $"{confirmPasswordLink} <br/><br/>" +
                                 $"Happy eating!!!"
                };
                await EmailBuilder.SendEmailAsync(messageBuilder);

                return(result);
            }

            else
            {
                var error = user.Errors.FirstOrDefault();
                throw new ArgumentException(error.Description);
            }
        }
        public async Task <IActionResult> Create([FromBody] CreateStoreUserModel createStoreUserModel)
        {
            try
            {
                var result = await securityService.CreateUserAsync(createStoreUserModel);

                await profileService.CreateUserProfile(result.Id);

                return(Created("", result));
            }
            catch (Exception ex)
            {
                return(HandleExcpetion(ex));
            }
        }