/// <summary> /// Ավելացնում է email հաճախորդի տվյալներ մեջ /// </summary> /// <param name="emailAddress"></param> /// <param name="customerNumber"></param> private RegistrationActionResult AddEmailForCustomer(string emailAddress, ulong customerNumber) { var result = new RegistrationActionResult(); CustomerEmail email = new CustomerEmail { emailType = new KeyValue(), email = new Email(), quality = new KeyValue(), priority = new KeyValue() }; email.priority.key = 1; email.emailType.key = 5; email.quality.key = 1; email.email.emailAddress = emailAddress; var saveResult = _acbaOperationService.SaveCustomerEmail(customerNumber, email); if (saveResult.resultCode == 1) { result.ResultCode = CustomerRegistration.ResultCode.Normal; } else if (saveResult.resultCode == 2) { throw new Exception(saveResult.resultDescription); } return(result); }
/// <summary> /// Ավելացնում է հեռախոսահամարը հաճախորդի տվյալներ մեջ /// </summary> /// <param name="phoneNumber"></param> /// <param name="customerNumber"></param> private RegistrationActionResult AddPhoneForCustomer(string phoneNumber, ulong customerNumber) { var result = new RegistrationActionResult(); var phone = new CustomerPhone(); phone.phoneType = new KeyValue(); phone.phone = new Phone(); phone.priority = new KeyValue(); phone.priority.key = 1; phone.phoneType.key = 1; phone.phone.areaCode = phoneNumber.Substring(3, 2); phone.phone.countryCode = "+374"; phone.phone.phoneNumber = phoneNumber.Substring(5); phone.Checked = new KeyValue { key = 1 }; var saveResult = _acbaOperationService.SaveCustomerPhone(customerNumber, phone); if (saveResult.resultCode == 1) { result.ResultCode = CustomerRegistration.ResultCode.Normal; } else if (saveResult.resultCode == 2) { throw new Exception(saveResult.resultDescription); } return(result); }
public async static void SendNewAccountRegistrationData(string _email, string _password, string _firstName, string _lastName) { NewAccountDataModel model = new NewAccountDataModel() { Email = _email, Password = _password, FirstName = _firstName, LastName = _lastName }; string json = JsonConvert.SerializeObject(model); var requestMessage = new HttpRequestMessage(HttpMethod.Post, Constants.API_NEW_ACCOUNT_POST); requestMessage.Content = new StringContent(json); HttpResponseMessage response = await SendRequest(requestMessage); RegistrationResultEventArgs args = new RegistrationResultEventArgs(); if (response.StatusCode == System.Net.HttpStatusCode.OK) { args.Successful = true; args.Message = response.ReasonPhrase; } else { args.Successful = false; args.Message = response.ReasonPhrase; } RegistrationActionResult?.Invoke(null, args); }
/// <summary> /// Մինչ օնլայն բանկինգի գրանցման ստուգումներ /// </summary> /// <returns></returns> internal RegistrationActionResult ValidateAcbaOnlineCreating(RegistrationCustomerData customerData) { var resultValidation = new RegistrationActionResult { ResultCode = CustomerRegistration.ResultCode.Normal }; if (!customerData.IsPhoneVerified) { resultValidation.ResultCode = CustomerRegistration.ResultCode.ValidationError; resultValidation.Description = "Not verified phone"; return(resultValidation); } if (!String.IsNullOrEmpty(customerData.UserName) && !String.IsNullOrEmpty(customerData.Password)) { if (!(customerData.UserName.All(c => Char.IsLetterOrDigit(c)) && customerData.UserName.Length > 3 && customerData.Password.Length > 7 && customerData.Password.All(c => Char.IsLetterOrDigit(c)) && customerData.Password.Any(char.IsUpper) && customerData.Password.Any(char.IsNumber) && customerData.Password.Any(char.IsDigit) )) { resultValidation.ResultCode = CustomerRegistration.ResultCode.ValidationError; resultValidation.Description = "Login pass error"; return(resultValidation); } } else { resultValidation.ResultCode = CustomerRegistration.ResultCode.ValidationError; resultValidation.Description = "UserName or password is empty"; return(resultValidation); } if (String.IsNullOrEmpty(customerData.Email)) { resultValidation.ResultCode = CustomerRegistration.ResultCode.ValidationError; resultValidation.Description = "Email does not exist"; return(resultValidation); } if (customerData.CustomerQuality != 1) { Regex regex = new Regex(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"); Match match = regex.Match(customerData.Email); if (!match.Success) { resultValidation.ResultCode = CustomerRegistration.ResultCode.ValidationError; resultValidation.Description = "Email regexp error"; return(resultValidation); } } return(resultValidation); }
/// <summary> /// Գեներացնում է օնլայն բանկինգ /// </summary> /// <param name="customerData"></param> /// <returns></returns> public RegistrationActionResult GenerateAcbaOnline(RegistrationCustomerData customerData) { var result = new RegistrationActionResult(); var actionResult = _xbManagementService.GenerateAcbaOnline(customerData.UserName, customerData.Password, customerData.CustomerNumber, customerData.PhoneNumber, customerData.CustomerQuality, customerData.Email); StringBuilder stringBuilder = new StringBuilder(); if (actionResult?.Errors != null) { foreach (var item in actionResult.Errors) { if (actionResult.Errors.Count() == 1) { stringBuilder = stringBuilder.Append(item.Description); } else { stringBuilder = stringBuilder.AppendLine(item.Description); } } result.Description = stringBuilder.ToString(); } if (actionResult.ResultCode == ResultCode.Normal) { result.ResultCode = CustomerRegistration.ResultCode.Normal; } else if (actionResult.ResultCode == ResultCode.ValidationError) { result.ResultCode = CustomerRegistration.ResultCode.ValidationError; } else { result.ResultCode = CustomerRegistration.ResultCode.Failed; } return(result); }
public RegistrationActionResult ContinueRegistrationProcess(RegistrationCustomerData externalRegData, RegistrationProcessSteps step) { var result = new RegistrationActionResult(); result.ResultCode = CustomerRegistration.ResultCode.Failed; this.CustomerData = _cache.Get <string, RegistrationCustomerData>("RegistrationCustomerData_" + externalRegData.RegistrationToken); if (this.CustomerData != null) { _cache.UpdateExpiration("RegistrationCustomerData_" + externalRegData.RegistrationToken, 15); switch (step) { case RegistrationProcessSteps.SendSMSVerificationCodeByRegistrationToken: if (this.CustomerData.CustomerQuality != 1 && externalRegData.PhoneNumber.Length == 8 && externalRegData.PhoneNumber.All(c => Char.IsDigit(c))) { this.CustomerData.PhoneNumber = "374" + externalRegData.PhoneNumber; } this.CustomerData.VerificationCode = this.SendVerificationCode(this.CustomerData.PhoneNumber, 5, CustomerRegistrationVerificationSMSTypes.NumbersAndLetters); result.ResultCode = ResultCode.Normal; break; case RegistrationProcessSteps.CheckSMSVerificationCodeByRegistrationToken: this.CustomerData.IsPhoneVerified = this.CustomerData.VerificationCode == externalRegData.VerificationCode; if (this.CustomerData.NumberFailedVerificationCount < 3) { if (this.CustomerData.IsPhoneVerified) { this.CustomerData.VerificationCode = String.Empty; if (CustomerData.CustomerQuality != 1) { result = this.AddPhoneForCustomer(this.CustomerData.PhoneNumber, this.CustomerData.CustomerNumber); } else { result.ResultCode = ResultCode.Normal; } } else { result.Description = "Մուտքագրվել է սխալ մեկանգամյա գաղտնաբառ: Մուտքագրեք Բանկում գրանցված Ձեր հեռախոսահամարին ուղարկված մեկանգամյա գաղտնաբառը:"; this.CustomerData.NumberFailedVerificationCount++; } } else { _cache.Remove("RegistrationCustomerData_" + externalRegData.RegistrationToken); result.ResultCode = ResultCode.ValidationError; result.Description = "Դուք գերազանցել եք տվյալների սխալ մուտքագրման սահմանաչափը: Գործընթացը ավարտված է:"; } break; case RegistrationProcessSteps.GenerateAcbaOnline: this.CustomerData.UserName = externalRegData.UserName; this.CustomerData.Password = externalRegData.Password; if (this.CustomerData.CustomerQuality != 1) { this.CustomerData.Email = externalRegData.Email; } RegistrationActionResult validationResult = _onlineBankingRegistrationManager.ValidateAcbaOnlineCreating(this.CustomerData); if (validationResult.ResultCode == ResultCode.Normal) { if (this.CustomerData.CustomerQuality != 1) { RegistrationActionResult saveEmailResult = this.AddEmailForCustomer(this.CustomerData.Email, this.CustomerData.CustomerNumber); if (saveEmailResult.ResultCode == ResultCode.Normal) { result = _onlineBankingRegistrationManager.GenerateAcbaOnline(this.CustomerData); } } else { result = _onlineBankingRegistrationManager.GenerateAcbaOnline(this.CustomerData); } } else { result = validationResult; } break; } } else { result.Description = "Initilized customerdata is null"; } return(result); }