public async Task <List <LegalEntity> > GetLegalEntitiesForAccount(string accountId) { var listOfEntities = await _client.GetLegalEntitiesConnectedToAccount(accountId); var list = new List <LegalEntity>(); if (listOfEntities.Count == 0) { return(list); } foreach (var entity in listOfEntities) { var legalEntityViewModel = await _client.GetLegalEntity(accountId, Convert.ToInt64(entity.Id)); list.Add(new LegalEntity { Name = legalEntityViewModel.Name, RegisteredAddress = legalEntityViewModel.Address, Source = legalEntityViewModel.SourceNumeric, Code = legalEntityViewModel.Code, Id = legalEntityViewModel.LegalEntityId, AccountLegalEntityPublicHashedId = legalEntityViewModel.AccountLegalEntityPublicHashedId }); } return(list); }
public async Task <bool> Handle(EmployerHasLegalEntityQuery request, CancellationToken cancellationToken) { try { var LegalEntities = await _accountApi.GetLegalEntitiesConnectedToAccount(request.EmployerAccountId); _logger.LogInformation((LegalEntities.Count == 1) ? $"{LegalEntities.Count} legal entity found" : $"{LegalEntities.Count} legal entities found"); return(LegalEntities.Count > 0); } catch (Exception e) { _logger.LogWarning("No legal entities found for this account.", e); return(false); } }
public async Task <IEnumerable <LegalEntityViewModel> > GetLegalEntitiesConnectedToAccountAsync(string accountId) { try { var accounts = await _accountApiClient.GetLegalEntitiesConnectedToAccount(accountId); var legalEntitiesTasks = accounts.Select(r => _accountApiClient.GetLegalEntity(accountId, long.Parse(r.Id))); await Task.WhenAll(legalEntitiesTasks.ToArray()); var entities = legalEntitiesTasks.Select(t => t.Result); return(entities); } catch (Exception ex) { _logger.LogError(ex, $"Failed to retrieve account information for account Id: {accountId}"); throw; } }
public async Task <List <LegalEntity> > GetLegalEntitiesForAccount(string accountId) { var listOfEntities = await _accountsApiClient.GetLegalEntitiesConnectedToAccount(accountId); if (listOfEntities.Count == 0) { return(new List <LegalEntity>()); } var bag = new ConcurrentBag <LegalEntity>(); await listOfEntities.ParallelForEachAsync(async entity => { var legalEntityViewModel = await _accountsApiClient.GetLegalEntity(accountId, Convert.ToInt64(entity.Id)); bag.Add(new LegalEntity { Name = legalEntityViewModel.Name, RegisteredAddress = legalEntityViewModel.Address, Source = legalEntityViewModel.SourceNumeric, Agreements = legalEntityViewModel.Agreements.Select(agreementSource => new Agreement { Id = agreementSource.Id, SignedDate = agreementSource.SignedDate, SignedByName = agreementSource.SignedByName, Status = (EmployerAgreementStatus)agreementSource.Status, TemplateVersionNumber = agreementSource.TemplateVersionNumber }).ToList(), Code = legalEntityViewModel.Code, Id = legalEntityViewModel.LegalEntityId, AccountLegalEntityPublicHashedId = legalEntityViewModel.AccountLegalEntityPublicHashedId }); }, MaxConcurrentThreads ); return(bag.OrderBy(le => le.Id).ToList()); }
public async Task <List <LegalEntity> > GetLegalEntitiesForAccount(string accountId) { var listOfEntities = await _client.GetLegalEntitiesConnectedToAccount(accountId); var list = new List <LegalEntity>(); if (listOfEntities.Count == 0) { return(list); } foreach (var entity in listOfEntities) { var legalEntityViewModel = await _client.GetLegalEntity(accountId, Convert.ToInt64(entity.Id)); list.Add(new LegalEntity { Name = legalEntityViewModel.Name, RegisteredAddress = legalEntityViewModel.Address, Source = legalEntityViewModel.SourceNumeric, Agreements = legalEntityViewModel.Agreements.Select(agreementSource => new Agreement { Id = agreementSource.Id, SignedDate = agreementSource.SignedDate, SignedByName = agreementSource.SignedByName, Status = (EmployerAgreementStatus)agreementSource.Status, TemplateVersionNumber = agreementSource.TemplateVersionNumber }).ToList(), Code = legalEntityViewModel.Code, Id = legalEntityViewModel.LegalEntityId, AccountLegalEntityPublicHashedId = legalEntityViewModel.AccountLegalEntityPublicHashedId }); } return(list); }
public async Task <ICollection <ResourceViewModel> > GetLegalEntitiesConnectedToAccount(string accountId) { return(await _inner.GetLegalEntitiesConnectedToAccount(accountId)); }