コード例 #1
0
        private Person GetUserByContext(ref Dictionary <string, string> contextMapping, ExternalId user)
        {
            var urlEndPoint = contextMapping.ContainsKey(user.Context)
                ? contextMapping[user.Context]
                : ContextMappingLocalStorage.Resolve(user.Context);

            if (urlEndPoint == null)
            {
                return(GetPersonWithNoPersonInfo(user));
            }

            if (!contextMapping.ContainsKey(user.Context))
            {
                contextMapping.Add(user.Context, urlEndPoint);
            }

            var personInfo = RestSharpHelper.Get <PersonalInfo>(new RestSharpParams()
            {
                ApiEndPoint = urlEndPoint.Replace("{id}", user.Id),
                BaseUrl     = GetBaseUri(urlEndPoint),
                MethodType  = Method.GET
            });
            var person = PersonLocalStorage.CreatePersonAsync(new Person(user, personInfo)).Result;

            return(person);
        }
        public static IPersonalInfoEnrichmentService BuildService(ILogger logger)
        {
            var settings = new TableStorageSettings()
            {
                ConnectionString = InfrastructureConfiguration.TableStorageConnString
            };

            var initializer = new AzureTableStorageInitializer(settings);

            var storedPersonalInfoRepo = new AzureTableStorageRepository <StoredPersonalInfo>(initializer, logger);
            var personLocalStorage     = new PersonLocalStorage(storedPersonalInfoRepo);

            var contextMappingRepo = new AzureTableStorageRepository <ContextMapping>(initializer, logger);

            var contextMappingLocalStorage = new ContextMappingLocalStorage(contextMappingRepo);

            var authenticationSettings = new AuthenticationSettings(InfrastructureConfiguration.AuthProviderUri,
                                                                    InfrastructureConfiguration.AuthProviderClient,
                                                                    InfrastructureConfiguration.AuthProviderSecret);

            var authenticationProvider = new AuthenticationProvider(authenticationSettings);

            var personalInfoExternalServiceFactory = new PersonalInfoExternalServiceFactory(contextMappingLocalStorage, authenticationProvider, logger);


            return(new PersonalInfoEnrichmentService(personLocalStorage, personalInfoExternalServiceFactory, logger));
        }
コード例 #3
0
        public IEnumerable <Person> GetUsers(IEnumerable <ExternalId> userIds)
        {
            var personInfo      = new List <Person>();
            var contextEndPoint = new Dictionary <string, string>();

            foreach (var user in userIds)
            {
                var person = PersonLocalStorage.FindPersonAsync(user).Result;
                personInfo.Add(person ?? GetUserByContext(ref contextEndPoint, user));
            }

            return(personInfo);
        }
コード例 #4
0
        public void CreatePersonAsync_Test()
        {
            //Arrange
            _personLocalStorage = new PersonLocalStorage(_azureTableStorageRepoMock.Object);
            Person person = new Person(new ExternalId(), new PersonalInfo());

            _azureTableStorageRepoMock.Setup(e => e.InsertRecordToTable(It.IsAny <StoredPersonalInfo>()))
            .Returns(Task.FromResult(new TableResult()));

            //Act
            var result = _personLocalStorage.CreatePersonAsync(person);

            //Assert
            Assert.AreEqual("RanToCompletion", result.Status.ToString());
        }