コード例 #1
0
        public async Task <ActionResult <PersonResponse> > SearchForNonJudgePersonsByContactEmail([FromQuery] string contactEmail)
        {
            if (!contactEmail.IsValidEmail())
            {
                ModelState.AddModelError(nameof(contactEmail), $"Please provide a valid {nameof(contactEmail)}");
                return(BadRequest(ModelState));
            }

            var personQuery = new GetPersonByContactEmailQuery(contactEmail);
            var person      = await _queryHandler.Handle <GetPersonByContactEmailQuery, Person>(personQuery);

            if (person == null)
            {
                return(NotFound($"Person with {contactEmail} does not exist"));
            }

            var hearingsQuery = new GetHearingsByUsernameQuery(person.Username);
            var hearings      = await _queryHandler.Handle <GetHearingsByUsernameQuery, List <VideoHearing> >(hearingsQuery);

            var judicialHearings = hearings.SelectMany(v => v.Participants.Where(p => p.PersonId == person.Id))
                                   .Any(x => x.HearingRole.UserRole.IsJudge);

            if (judicialHearings)
            {
                return(Unauthorized("Only searches for non Judge persons are allowed"));
            }

            var mapper   = new PersonToResponseMapper();
            var response = mapper.MapPersonToResponse(person);

            return(Ok(response));
        }
        public async Task Should_return_null_when_no_person_found()
        {
            var query  = new GetPersonByContactEmailQuery("*****@*****.**");
            var person = await _handler.Handle(query);

            person.Should().BeNull();
        }
        public async Task Should_return_person_that_exists()
        {
            var seededHearing = await Hooks.SeedVideoHearing();

            TestContext.WriteLine($"New seeded video hearing id: {seededHearing.Id}");

            var existingPerson = seededHearing.GetParticipants().First().Person;
            var query          = new GetPersonByContactEmailQuery(existingPerson.ContactEmail);
            var person         = await _handler.Handle(query);

            person.Should().NotBeNull();
            person.Should().BeEquivalentTo(existingPerson);
        }
コード例 #4
0
        public async Task <IActionResult> GetPersonByContactEmail(string contactEmail)
        {
            if (!contactEmail.IsValidEmail())
            {
                ModelState.AddModelError(nameof(contactEmail), $"Please provide a valid {nameof(contactEmail)}");
                return(BadRequest(ModelState));
            }

            var query  = new GetPersonByContactEmailQuery(contactEmail);
            var person = await _queryHandler.Handle <GetPersonByContactEmailQuery, Person>(query);

            if (person == null)
            {
                return(NotFound());
            }

            var mapper   = new PersonToResponseMapper();
            var response = mapper.MapPersonToResponse(person);

            return(Ok(response));
        }