public async Task <PartnersListResponse> GetAllPartnersAsync([FromQuery] PartnerListRequest request) { var requestModel = _mapper.Map <PartnerListRequestModel>(request); #region Filter var permissionLevel = await _requestContext.GetPermissionLevelAsync(PermissionType.ProgramPartners); if (permissionLevel.HasValue && permissionLevel.Value == PermissionLevel.PartnerEdit) { requestModel.CreatedBy = Guid.Parse(_requestContext.UserId); } #endregion var result = await _partnerManagementClient.Partners.GetAsync(requestModel); var response = new PartnersListResponse { PagedResponse = new PagedResponseModel { TotalCount = result.TotalSize, CurrentPage = result.CurrentPage }, Partners = _mapper.Map <IEnumerable <PartnerRowResponse> >(result.PartnersDetails) }; await PopulateResponseWithPartnerKycStatus(response); return(response); }
private async Task PopulateResponseWithPartnerKycStatus(PartnersListResponse response) { var partnerIds = response.Partners.Select(e => e.Id).ToArray(); var kycInformationResponses = await _kycClient.KycApi.GetCurrentByPartnerIdsAsync(partnerIds); SetPartnerKycStatus(response, kycInformationResponses); }
private void SetPartnerKycStatus(PartnersListResponse response, IReadOnlyList <KycInformationResponse> kycInformationResponses) { var dict = response.Partners.ToDictionary(k => k.Id, v => v); foreach (var kycInformation in kycInformationResponses) { dict.TryGetValue(kycInformation.PartnerId, out var partnerRowResponse); if (partnerRowResponse != null) { partnerRowResponse.KycStatus = (KycStatus)kycInformation.KycStatus; } } }