コード例 #1
0
ファイル: AdminController.cs プロジェクト: adelowomi/oidcbe
        public IActionResult CreateCorporate([FromBody] SubscriberCorporateInputModel request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            return(Ok(_subscriberAppService.AddNewSubscriberCorporate(request).Result));
        }
コード例 #2
0
        public async Task <ResponseViewModel> AddNewSubscriberCorporate(SubscriberCorporateInputModel model)
        {
            var existingUserResult = _userManager.FindByEmailAsync(model.Email).Result;

            if (existingUserResult != null)
            {
                return(Failed(ResponseMessageViewModel.ACCOUNT_ALREADY_EXITS, ResponseErrorCodeStatus.ACCOUNT_ALREADY_EXIST));
            }

            var result = _subscriberService.CreateSubcribers(new AppUser
            {
                UserName       = model.Email,
                FirstName      = model.NameOfEntry,
                LastName       = model.NameOfEntry,
                Email          = model.Email,
                PhoneNumber    = model.PhoneNumber,
                RCNumber       = model.RCNumber,
                MailingAddress = model.MailingAddress,
                OfficeAddress  = model.OfficeAddress,
                WebsiteUrl     = model.WebSiteUrl
            });


            model.SaveProfilePhoto(_settings);

            var emailHtmlTemplate = _emailService.GetEmailTemplate(_env, EmailTemplate.Welcome(model.Platform ?? Res.WEB_PLATFORM));

            var code = _otpService.GenerateCode(result.AppUser.Id, _settings.OtpExpirationInMinutes, model.Platform ?? Res.WEB_PLATFORM);

            Dictionary <string, string> contentReplacements = new Dictionary <string, string>()
            {
                { Placeholder.EMAIL, result.AppUser.Email },
                { Placeholder.OTP, (model.Platform ?? Res.WEB_PLATFORM).ToLower() == Res.WEB_PLATFORM ? $"{_settings.WebApp.BaseUrl}{_settings.WebApp.Register}{code}" : code },
            };

            if (contentReplacements != null)
            {
                foreach (KeyValuePair <string, string> pair in contentReplacements)
                {
                    emailHtmlTemplate = emailHtmlTemplate.Replace(pair.Key, pair.Value);
                }
            }

            _ = _emailService.SendEmail(model.Email, Res.ACCOUNT_SETUP, emailHtmlTemplate);

            _ = await _userManager.AddToRoleAsync(result.AppUser, UserType.SUBSCRIBER);

            var mappedResult = _mapper.Map <AppUser, VendorViewModel>(result.AppUser);

            return(Ok(mappedResult));
        }