public async Task <ConfirnmationResponse> ConfirmEmailAsync(ConfirnmationRequest request) { try { var confirmCode = ConfirmationCode.Generate(); var sent = await SendAndStoreConfirmationCode(confirmCode, request.Email); if (!sent) { return new ConfirnmationResponse { Status = new APIResponseStatus { IsSuccessful = false, Message = new APIResponseMessage { FriendlyMessage = "Unable to send mail!! please contact systems administrator" } } } } ; return(new ConfirnmationResponse { Status = new APIResponseStatus { IsSuccessful = true, Message = new APIResponseMessage { FriendlyMessage = "Please Check your email for email for confirnmation" } } }); } catch (Exception ex) { #region Log error var errorCode = ErrorID.Generate(4); _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}"); return(new ConfirnmationResponse { Status = new APIResponseStatus { IsSuccessful = false, Message = new APIResponseMessage { FriendlyMessage = "Error occured!! Please tyr again later", MessageId = errorCode, TechnicalMessage = $"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}" } } }); #endregion } }
public async Task <AuthenticationResult> CustomerRegisterAsync(CustomUserRegistrationReqObj userRegistration) { try { var accountNumber = GeneralHelpers.GenerateRandomDigitCode(10); var existingUser = await _userManager.FindByEmailAsync(userRegistration.Email); if (existingUser != null) { return(new AuthenticationResult { Status = new APIResponseStatus { IsSuccessful = false, Message = new APIResponseMessage { FriendlyMessage = "User with this email address already exist" } } }); } var user = new ApplicationUser { Email = userRegistration.Email, UserName = userRegistration.Email, PhoneNumber = userRegistration.PhoneNo, FirstName = userRegistration.FirstName, LastName = userRegistration.LastName, Address = userRegistration.Address, CustomerTypeId = userRegistration.CustomerTypeId, ApprovalStatusId = 1, SecurityAnswered = userRegistration.SecurityAnswered, QuestionId = userRegistration.QuestionId }; var createdUser = await _userManager.CreateAsync(user, userRegistration.Password); var customer = new credit_loancustomer { Email = userRegistration.Email, UserIdentity = user.Id, PhoneNo = userRegistration.PhoneNo, FirstName = userRegistration.FirstName, LastName = userRegistration.LastName, Address = userRegistration.Address, CustomerTypeId = userRegistration.CustomerTypeId, CASAAccountNumber = accountNumber, ApprovalStatusId = 1, ProfileStatus = 0, Active = true, Deleted = false, CreatedBy = user.Email, CreatedOn = DateTime.Now, RegistrationSource = "Website" }; _dataContext.credit_loancustomer.Add(customer); _dataContext.SaveChanges(); if (!createdUser.Succeeded) { return(new AuthenticationResult { Status = new APIResponseStatus { IsSuccessful = false, Message = new APIResponseMessage { FriendlyMessage = createdUser.Errors.Select(x => x.Description).FirstOrDefault(), } } }); } var custCode = ConfirmationCode.Generate(); var successful = await CustomerSendAndStoreConfirmationCode(custCode, user.Email); var accountId = user.Id; var name = user.FirstName; var baseUrl = _configuration.GetValue <string>("FrontEndUrl:webUrl"); var url = baseUrl + "/#/auth/activate-account/" + accountId + ""; var content1 = "Welcome to GOS Credit! There's just one step before you get to complete your customer account registration. Verify you have the right email address by clicking on the button below."; var content2 = "Once your account creation is completed, your can explore our services and have a seamless experience."; var body = GeneralHelpers.MailBody(name, url, content1, content2); var addresses = new ToAddress { name = user.FirstName + " " + user.LastName, address = user.Email }; var addressList = new List <ToAddress> { addresses }; var mailObj = new MailObj { subject = "Email Verification", content = body, toAddresses = addressList, fromAddresses = new List <FromAddress> { }, sendIt = true, saveIt = false }; var res = _identityServer.SendMail(mailObj); return(new AuthenticationResult { Status = new APIResponseStatus { IsSuccessful = true, CustomToken = custCode, } }); } catch (Exception ex) { #region Log error var errorCode = ErrorID.Generate(4); _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}"); return(new AuthenticationResult { Status = new APIResponseStatus { Message = new APIResponseMessage { FriendlyMessage = "Error occured!! Please try again later", MessageId = errorCode, TechnicalMessage = $"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}" } } }); #endregion } }