private void CreateAccount(CompleteAdditionalInformationModel model,
            ClaimsIdentity partialSignInUser)
        {
            var newUser = new User
            {
                Subject = Guid.NewGuid().ToString(),
                IsActive = true
            };

            newUser.UserLogins.Add(new UserLogin()
            {
                Subject = newUser.Subject,
                LoginProvider = "windows",
                ProviderKey = partialSignInUser
                    .Claims
                    .First(c => c.Type == "external_provider_user_id")
                    .Value
            });

            newUser.UserClaims.Add(new UserClaim()
            {
                Id = Guid.NewGuid().ToString(),
                Subject = newUser.Subject,
                ClaimType = Constants.ClaimTypes.Email,
                ClaimValue = partialSignInUser
                    .Claims
                    .First(c => c.Type == Constants.ClaimTypes.Email)
                    .Value
            });

            newUser.UserClaims.Add(new UserClaim()
            {
                Id = Guid.NewGuid().ToString(),
                Subject = newUser.Subject,
                ClaimType = Constants.ClaimTypes.GivenName,
                ClaimValue = model.FirstName
            });


            newUser.UserClaims.Add(new UserClaim()
            {
                Id = Guid.NewGuid().ToString(),
                Subject = newUser.Subject,
                ClaimType = Constants.ClaimTypes.FamilyName,
                ClaimValue = model.LastName
            });

            newUser.UserClaims.Add(new UserClaim()
            {
                Id = Guid.NewGuid().ToString(),
                Subject = newUser.Subject,
                ClaimType = "role",
                ClaimValue = model.Role
            });

            Save(newUser);
        }
        public async Task<ActionResult> Index(CompleteAdditionalInformationModel model)
        {
            var partialSignInUser = await EnsurePartialSignedUserFound();

            if (!ModelState.IsValid) return View();

            CreateAccount(model, partialSignInUser);

            var environment = GetOwinContext().Environment;
            return Redirect(await environment.GetPartialLoginResumeUrlAsync());
        }