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)); }
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); }
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()); }