Example #1
0
        public async Task SubmitClaimAsync_Should_Create_New_Claim_Request()
        {
            using (var context = new WarblerDbContext(Options))
            {
                var repo = new SqlClaimRequestRepository(context);
                var test = new ClaimRequestService(repo);


                var request = new ClaimRequest
                {
                    FirstName     = "William",
                    LastName      = "Harris",
                    University    = Test,
                    PositionTitle = "Admin",
                    Comments      = "none",
                    Submitter     = Bob
                };

                await test.SubmitAsync(request);
            }

            using (var context = new WarblerDbContext(Options))
            {
                var claimRequest = context.ClaimRequests.Single();
                Assert.AreEqual(1, context.ClaimRequests.Count());
                Assert.AreEqual("William", claimRequest.FirstName);
                Assert.AreEqual("Harris", claimRequest.LastName);
                Assert.AreEqual(Test, claimRequest.University);
                Assert.AreEqual("Admin", claimRequest.PositionTitle);
                Assert.AreEqual("none", claimRequest.Comments);
            }
        }
Example #2
0
        public async Task <IActionResult> Index(ManageMessageId?message = null)
        {
            ViewData["StatusMessage"] =
                message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed."
                : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set."
                : message == ManageMessageId.SetTwoFactorSuccess ? "Your two-factor authentication provider has been set."
                : message == ManageMessageId.Error ? "An error has occurred."
                : message == ManageMessageId.AddPhoneSuccess ? "Your phone number was added."
                : message == ManageMessageId.RemovePhoneSuccess ? "Your phone number was removed."
                : message == ManageMessageId.ClaimRequestSuccess ? "Your claim was successfully submitted."
                : message == ManageMessageId.ManageUniversitySuccess ? "Custom authentication was successfully saved."
                : message == ManageMessageId.TestSamlSuccess ? "SAML SSO flow was successful."
                : "";

            var user = await GetCurrentUserAsync();

            if (user == null)
            {
                return(View("Error"));
            }

            var claimRequestService = new ClaimRequestService(new SqlClaimRequestRepository(_dbContext));

            var model = new IndexViewModel
            {
                HasPassword       = await _userManager.HasPasswordAsync(user),
                PhoneNumber       = await _userManager.GetPhoneNumberAsync(user),
                TwoFactor         = await _userManager.GetTwoFactorEnabledAsync(user),
                Logins            = await _userManager.GetLoginsAsync(user),
                BrowserRemembered = await _signInManager.IsTwoFactorClientRememberedAsync(user),
                ClaimedUniversity = await claimRequestService.GetClaimedUniversityAsync(user)
            };

            return(View(model));
        }
Example #3
0
        public async Task <IActionResult> ClaimUniversity(ClaimUniversityViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(new ClaimUniversityViewModel(await GetEligibleUniversities())));
            }

            var service = new ClaimRequestService(new SqlClaimRequestRepository(_dbContext));
            var user    = await GetCurrentUserAsync();

            try
            {
                model.ClaimRequest.SubmitterId = user.Id;
                await service.SubmitAsync(model.ClaimRequest);

                return(RedirectToAction(nameof(Index), new { Message = ManageMessageId.ClaimRequestSuccess }));
            }
            catch (Exception)
            {
                return(View("Error"));
            }
        }
Example #4
0
 public DevController(WarblerDbContext context)
 {
     UniversityService   = new UniversityService(new SqlUniversityRepository(context));
     ClaimRequestService = new ClaimRequestService(new SqlClaimRequestRepository(context));
 }