コード例 #1
0
        public IActionResult GetPersonForAgency(long id, [Required, NotNull] string agencySystemName)
        {
            var agency = IdentityRepository.GetAgency(agencySystemName);

            if (agency == null)
            {
                ModelState.AddModelError(nameof(agencySystemName), $"{agencySystemName} was not found");
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Debug.Assert(agency != null, nameof(agency) + " != null");

            var personIdentity = new PersonIdentity(id);

            if (!IdentityRepository
                .GetPeopleWithIdentifiers(new[] { personIdentity }, agency.RootIdentifierNames(), UserProvider)
                .TryGetValue(personIdentity, out var identifiers))
            {
                return(NotFound(id));
            }

            var personIdForAgency = IdentityRepository.GetPersonAgencyId(personIdentity, agency.Id);

            return(Ok(new AgencyPersonDto(personIdForAgency, IdentifierDtoMarshaller.MarshallToDtos(identifiers))));
        }
コード例 #2
0
        public void CanGetAgencies()
        {
            var aField = createContext.Add(new IdentifierDefinitionEntity("A Field", "a-field:string")).Entity;

            createContext.Add(
                new AgencyEntity("External Agency", "external")
            {
                Fields = { new AgencyFieldEntity {
                               Identifier = aField
                           } }
            }
                );

            createContext.SaveChanges();

            var agency = repository.GetAgency("external");

            using (new AssertionScope())
            {
                agency.Name.Should().Be("External Agency");
                agency.SystemName.Should().Be("external");
                agency.Fields.Should().Contain(new[] { "a-field" });
            }
        }