/// <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 ActionResult SaveCustomerPhone(ulong customerNumber, CustomerPhone phone)
        {
            var result = new ActionResult();

            this.Use(client => { result = client.SaveCustomerPhoneAsync(customerNumber, phone).Result; }
                     );
            return(result);
        }
        private CustomerRegistrationProcessResult RegistratePhysicalCustomer(PhysicalCustomer customer)
        {
            var result = new CustomerRegistrationProcessResult();

            if (customer != null && customer.customerNumber != default(ulong))
            {
                if (!_acbaOperationService.CheckCustomerUpdateExpired(customer.customerNumber) || customer.quality.key != 1)
                {
                    this.CustomerData.CustomerNumber  = customer.customerNumber;
                    this.CustomerData.CustomerQuality = customer.quality.key;

                    bool hasCustomerOnlineBanking = _xbService.HasCustomerOnlineBanking(customer.customerNumber);

                    if (!hasCustomerOnlineBanking)
                    {
                        string name    = Utilities.Utils.ConvertAnsiToUnicode(customer.person.fullName.firstName);
                        string surname = Utilities.Utils.ConvertAnsiToUnicode(customer.person.fullName.lastName);

                        if (customer.quality.key == 1 && customer.customerType.key == 6)
                        {
                            CustomerEmail customerEmail = customer.person.emailList.Find(email => email.emailType.key == 5 && email.priority.key == 1 && email.quality.key == 1);
                            CustomerPhone customerPhone = customer.person.PhoneList.Find(phone => phone.phoneType.key == 1 && phone.phone.countryCode == "+374" && phone.priority.key == 1);

                            if (customerEmail != null && customerPhone != null)
                            {
                                string phoneNumber  = customerPhone.phone.countryCode + customerPhone.phone.areaCode + customerPhone.phone.phoneNumber;
                                string emailAddress = customerEmail.email.emailAddress;


                                result.RegistrationResponseData = new Dictionary <string, string>()
                                {
                                    { "phoneNumber", phoneNumber.Substring(0, 6) + new StringBuilder(4).Insert(0, "*", 4).ToString() + phoneNumber.Substring(10, 2) },
                                    { "email", emailAddress.Substring(0, 3) + new String('#', emailAddress.Length - 6) + emailAddress.Substring(emailAddress.Length - 3, 3) },
                                    { "nameSurname", name.Substring(0, 2) + new String('#', name.Length - 2) + " " + surname.Substring(0, 2) + new String('#', surname.Length - 2) },
                                    { "customerNumber", customer.customerNumber.ToString() }
                                };

                                result.RegistrationResult = RegistrationResult.ClientWithCustomerQuality;
                                //result.ResultDescription = "Բանկում գրանցված տվյալները հաճախորդին երևում են ոչ լիարժեք ---> sharunakvum e grancume";

                                //remove the + from +374xxyyyyyy
                                this.CustomerData.PhoneNumber = phoneNumber.Remove(0, 1);
                                this.CustomerData.Email       = emailAddress;
                            }
                            else
                            {
                                result.RegistrationResult = RegistrationResult.ClientHavingCustomerQualityWithInsufficientData;
                                result.ResultDescription  = "Հարգելի հաճախորդ, Ձեր օնլայն գրանցումը հնարավոր չէ շարունակել: Խնդրում ենք մոտենալ ցանկացած մասնաճյուղ:";
                            }
                        }
                        else
                        {
                            result.RegistrationResult       = RegistrationResult.ClientWithNonCustomerQuality;
                            result.RegistrationResponseData = new Dictionary <string, string>()
                            {
                                { "nameSurname", name.Substring(0, 2) + new String('#', name.Length - 2) + " " + surname.Substring(0, 2) + new String('#', surname.Length - 2) },
                                { "customerNumber", customer.customerNumber.ToString() }
                            };
                            //result.ResultDescription = "Ցանկացած այլ կարգավիճակ ունեցող հաճախորդ (օր` դիմորդ, ելք կատարող անձ և այլն) կուղղորվի դեպի ոչ հաճախորդ սցենարով և կունենա նոր հաճախորդ համար:";
                        }

                        string registrationToken = this.RegistrateByIdentificationResult(result.RegistrationResult);

                        if (!String.IsNullOrEmpty(registrationToken))
                        {
                            result.RegistrationResponseData.Add("RegistrationToken", registrationToken);
                        }
                    }
                    else
                    {
                        result.RegistrationResult = RegistrationResult.ExistingOnlineUser;
                        result.ResultDescription  = "Դուք արդեն հանդիսանում եք «ACBA Digital» օգտատեր:";
                    }
                }
                else
                {
                    result.RegistrationResult = RegistrationResult.UpdateExpired;
                    result.ResultDescription  = "Հարգելի հաճախորդ, Ձեր օնլայն գրանցումը հնարավոր չէ շարունակել: Խնդրում ենք մոտենալ ցանկացած մասնաճյուղ:";
                }
            }
            return(result);
        }