public ActionResult Remove(bool removeConfirmation)
        {
            if (!AppConfigProvider.GetAppConfigValue <bool>("DataRetentionPolicies.Enabled"))
            {
                return(RedirectToAction(ActionNames.Index, ControllerNames.Account));
            }

            if (!removeConfirmation)
            {
                NoticeProvider.PushNotice(
                    StringResourceProvider.GetString("remove.account.confirmationneeded"),
                    NoticeType.Failure);

                return(RedirectToAction(ActionNames.Remove, ControllerNames.Account));
            }

            var customer = HttpContext.GetCustomer();

            if (customer.IsAdminUser || customer.IsAdminSuperUser)
            {
                NoticeProvider.PushNotice(
                    StringResourceProvider.GetString("remove.account.cannotremoveadmin"),
                    NoticeType.Failure);

                return(RedirectToAction(ActionNames.Index, ControllerNames.Account));
            }

            DataRetentionService.CreateRemoveAccountRequest(customer);
            DataRetentionService.SendRemoveAccountAcknowledgement(
                customer,
                Settings.StoreName,
                Settings.MailFromAddress);

            return(RedirectToAction(
                       ActionNames.Detail,
                       ControllerNames.Topic,
                       new { @name = "removeaccountconfirmation" }));
        }