Example #1
0
        public virtual async Task <ActionResult> ConfirmTransformToOrganization(string accountNameToTransform, string token)
        {
            var adminUser = GetCurrentUser();

            string errorReason;
            var    accountToTransform = UserService.FindByUsername(accountNameToTransform);

            if (accountToTransform == null)
            {
                errorReason = String.Format(CultureInfo.CurrentCulture,
                                            Strings.TransformAccount_OrganizationAccountDoesNotExist, accountNameToTransform);
                return(TransformToOrganizationFailed(errorReason));
            }

            if (!UserService.CanTransformUserToOrganization(accountToTransform, out errorReason))
            {
                return(TransformToOrganizationFailed(errorReason));
            }

            if (!await UserService.TransformUserToOrganization(accountToTransform, adminUser, token))
            {
                errorReason = Strings.TransformAccount_Failed;
                return(TransformToOrganizationFailed(errorReason));
            }

            MessageService.SendOrganizationTransformRequestAcceptedNotice(accountToTransform, adminUser);

            TelemetryService.TrackOrganizationTransformCompleted(accountToTransform);

            TempData["Message"] = String.Format(CultureInfo.CurrentCulture,
                                                Strings.TransformAccount_Success, accountNameToTransform);

            return(Redirect(Url.ManageMyOrganization(accountNameToTransform)));
        }