public async Task <BaseResponse> Handle(RegisterCommand request, CancellationToken cancellationToken) { var email = request.EmailAddress.Trim().ToLowerInvariant(); var existingUser = _userManager.FindByEmailAsync(email).Result; if (existingUser != null) { return(new BaseResponse(false, "User with email already exists")); } var newUser = new BB360User { Email = email, UserName = email, EmailConfirmed = false, PhoneNumber = request.PhoneNumber, FirstName = request.FirstName, LastName = request.LastName, TimeCreated = DateTime.Now, TimeUpdated = DateTime.Now, UserType = (int)UserTypeEnum.Candidate }; // string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; // string password = new string(Enumerable.Repeat(chars, 10).Select(s => s[new Random().Next(s.Length)]).ToArray()); var registerAttempt = _userManager.CreateAsync(newUser, request.Password).Result; if (!registerAttempt.Succeeded) { var errors = registerAttempt.Errors.Select(x => x.Description).ToList(); return(new BaseResponse(false, "There were errors found in your submission. Please review and retry")); } var application = new JobApplication { Comment = request.Comment, JobRole = request.JobRole, LinkedInProfileLink = request.LinkedInProfileLink, NewsSource = request.NewsSource, PortfolioLink = request.PortfolioLink, PrimarySkills = JsonConvert.SerializeObject(request.PrimarySkills), ProblemSolverOpinion = request.ProblemSolverOpinion, ReferralName = request.ReferralName, RiskOutcome = request.RiskOutcome, RiskSituation = request.RiskSituation, TimeCreated = DateTime.Now, TimeUpdated = DateTime.Now, UserId = newUser.Id, IsSuccessful = false }; _context.Add(application); _context.SaveChanges(); // _ =_mediator.Send(new SendEmailConfirmationCommand { User = newUser }); return(await Task.FromResult(new BaseResponse(true, "Job application submitted successfully. A new account has been created for you. Login credentials has been sent to your email address"))); }
public static ProfileDTO ToDTO(this UserProfile userProfile, BB360User user) { return(new ProfileDTO { Address = userProfile.Address, DateOfBirth = userProfile.DateOfBirth.ToString("MMMM dd, yyyy"), Gender = userProfile.Gender, LGAOfOrigin = userProfile.LGAOfOrigin, Nationality = userProfile.Nationality, StateOfOrigin = userProfile.StateOfOrigin, TownOfOrigin = userProfile.TownOfOrigin, FirstName = user.FirstName, LastName = user.LastName, UserType = ((UserTypeEnum)user.UserType).GetDescription() }); }