public virtual IActionResult Resend([FromBody] AccountActivationRequest model)
        {
            var response = new AccountActivationResponse {
                Result = ResultType.Error
            };
            var customer = _customerService.GetCustomerByPhone(model.Mobile);

            if (customer == null)
            {
                response.Messages.Add(_localizationService.GetResource("account.accountactivation.customernotexist"));
                return(BadRequest(response));
            }

            if (customer.Active)
            {
                response.Messages.Add(_localizationService.GetResource("account.accountactivation.customeralreadyactivated"));
                return(BadRequest(response));
            }

            _genericAttributeService.SaveAttribute(customer, BopCustomerDefaults.AccountActivationTokenAttribute, "");

            var verifyCode = CommonHelper.GenerateSmsVerificationCode();

            _genericAttributeService.SaveAttribute(customer, BopCustomerDefaults.AccountActivationTokenAttribute,
                                                   verifyCode);
            //_workflowMessageService.SendcustomerPhoneValidationMessage(customer, _workContext.WorkingLanguage.Id);

            response.Result = ResultType.Success;
            response.Messages.Add($"{_localizationService.GetResource("account.accountactivation.activation.code")} : {verifyCode}");
            return(Ok(response));
        }
        public virtual IActionResult Activate([FromBody] AccountActivationRequest model)
        {
            var response = new AccountActivationResponse {
                Result = ResultType.Error
            };
            var customer = _customerService.GetCustomerByPhone(model.Mobile);

            if (customer == null)
            {
                response.Messages.Add(_localizationService.GetResource("Account.AccountActivation.customerNotExist"));
                return(BadRequest(response));
            }

            var customerToken = _genericAttributeService.GetAttributesForEntity(customer.Id, customer.GetType().Name)
                                .SingleOrDefault(a => a.Key == BopCustomerDefaults.AccountActivationTokenAttribute);

            if (!customer.IsValidToken(customerToken, model.Code))
            {
                response.Messages.Add(_localizationService.GetResource("Account.AccountActivation.WrongToken"));
                return(BadRequest(response));
            }

            //activate customer account
            customer.Active = true;
            _customerService.UpdateCustomer(customer);
            _genericAttributeService.SaveAttribute(customer, BopCustomerDefaults.AccountActivationTokenAttribute, "");

            response.Result = ResultType.Success;
            return(Ok(response));
        }