public async Task<IHttpActionResult> RegisterAdmin(AdminRegistrationData model)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            var user = new ApplicationUser
            {
                UserName = model.Email,
                Email = model.Email,
                FirstName = model.FirstName,
                Surname = model.Surname
            };

            var result = await userManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return GetErrorResult(result);
            }

            result = await userManager.AddClaimAsync(user.Id,
                new Claim(ClaimTypes.Role, UserRole.Internal.ToString().ToLowerInvariant()));

            if (!result.Succeeded)
            {
                return GetErrorResult(result);
            }

            return Ok(user.Id);
        }
Esempio n. 2
0
        public async Task <IHttpActionResult> RegisterAdmin(AdminRegistrationData model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = new ApplicationUser
            {
                UserName  = model.Email,
                Email     = model.Email,
                FirstName = model.FirstName,
                Surname   = model.Surname
            };

            var result = await userManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            result = await userManager.AddClaimAsync(user.Id,
                                                     new Claim(ClaimTypes.Role, UserRole.Internal.ToString().ToLowerInvariant()));

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            return(Ok(user.Id));
        }
Esempio n. 3
0
        public async Task <string> RegisterAdminAsync(string accessToken, AdminRegistrationData adminRegistrationData)
        {
            httpClient.SetBearerToken(accessToken);

            var response = await httpClient.PostAsJsonAsync(Controller + "RegisterAdmin", adminRegistrationData);

            return(await response.CreateResponseAsync <string>());
        }
Esempio n. 4
0
        public async Task <ActionResult> Register(AdminRegistrationViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(await GetModelData(model)));
            }

            var adminRegistrationData = new AdminRegistrationData
            {
                Email           = model.Email,
                FirstName       = model.Name,
                Surname         = model.Surname,
                Password        = model.Password,
                ConfirmPassword = model.ConfirmPassword
            };

            try
            {
                var response = await oauthClientCredentialClient().GetClientCredentialsAsync();

                var userId = await client.Registration.RegisterAdminAsync(response.AccessToken, adminRegistrationData);

                var signInResponse = await oauthClient().GetAccessTokenAsync(model.Email, model.Password);

                authenticationManager.SignIn(signInResponse.GenerateUserIdentity());

                var emailSent = await
                                client.Registration.SendEmailVerificationAsync(signInResponse.AccessToken,
                                                                               new EmailVerificationData
                {
                    Url = Url.Action("AdminVerifyEmail", "Registration", null, Request.Url.Scheme)
                });

                await
                client.SendAsync(signInResponse.AccessToken,
                                 new CreateInternalUser(userId, model.JobTitle, model.LocalAreaId.GetValueOrDefault(), model.CompetentAuthority.GetValueOrDefault()));

                return(RedirectToAction("AdminEmailVerificationRequired"));
            }
            catch (ApiBadRequestException ex)
            {
                this.HandleBadRequest(ex);

                if (ModelState.IsValid)
                {
                    throw;
                }
            }

            return(View(await GetModelData(model)));
        }
        public async Task<ActionResult> Register(AdminRegistrationViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return View(await GetModelData(model));
            }

            var adminRegistrationData = new AdminRegistrationData
            {
                Email = model.Email,
                FirstName = model.Name,
                Surname = model.Surname,
                Password = model.Password,
                ConfirmPassword = model.ConfirmPassword
            };

            try
            {
                var userId = await client.Registration.RegisterAdminAsync(adminRegistrationData);
                var signInResponse = await oauthClient().GetAccessTokenAsync(model.Email, model.Password);
                authenticationManager.SignIn(signInResponse.GenerateUserIdentity());

                var emailSent = await
                    client.Registration.SendEmailVerificationAsync(signInResponse.AccessToken,
                        new EmailVerificationData
                        {
                            Url = Url.Action("AdminVerifyEmail", "Registration", null, Request.Url.Scheme)
                        });

                await
                    client.SendAsync(signInResponse.AccessToken,
                        new CreateInternalUser(userId, model.JobTitle, model.LocalAreaId.GetValueOrDefault(), model.CompetentAuthority.GetValueOrDefault()));

                return RedirectToAction("AdminEmailVerificationRequired");
            }
            catch (ApiBadRequestException ex)
            {
                this.HandleBadRequest(ex);

                if (ModelState.IsValid)
                {
                    throw;
                }
            }

            return View(await GetModelData(model));
        }
Esempio n. 6
0
 public async Task<string> RegisterAdminAsync(AdminRegistrationData adminRegistrationData)
 {
     var response = await httpClient.PostAsJsonAsync(Controller + "RegisterAdmin", adminRegistrationData);
     return await response.CreateResponseAsync<string>();
 }