Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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;
                }
            }
        }