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
            }
        }
Пример #2
0
        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
            }
        }