private ShareHolder MapPerson(NewShareHolderRequestDto dto, ICollection <ShareClause> shareClauses) { var person = _mapper.Map <ShareHolder>(dto); foreach (var subscription in dto.Subs) { person.PersonSubscriptions.Add( new PersonSubscription(person, shareClauses.Single(s => s.Title.Equals(subscription.Title)), subscription.Amount)); } return(person); }
public async Task <IActionResult> ShareHolders(NomineeBeneficiariesRequestDto dto) { var shareHoldersRequestDto = new NewShareHoldersRequestDto { ApplicationId = dto.ApplicationId }; foreach (var shareHolder in dto.ShareHolders) { var subscription = _mapper.Map <ShareholderSubscriptionDto>(shareHolder); var nominee = _mapper.Map <NewShareHolderRequestDto>(shareHolder); nominee.Subs.Add(subscription); if (!string.IsNullOrEmpty(shareHolder.BeneficiaryCountryCode)) { var beneficiary = new NewShareHolderRequestDto { CountryCode = shareHolder.BeneficiaryCountryCode, Surname = shareHolder.BeneficiarySurname, Names = shareHolder.BeneficiaryNames, Gender = shareHolder.BeneficiaryGender, DateOfBirth = shareHolder.BeneficiaryDateOfBirth, NationalIdentification = shareHolder.BeneficiaryNationalIdentification, PhysicalAddress = shareHolder.BeneficiaryPhysicalAddress, MobileNumber = shareHolder.BeneficiaryMobileNumber, EmailAddress = shareHolder.BeneficiaryEmailAddress, DateOfTakeUp = shareHolder.BeneficiaryDateOfAppointment, }; beneficiary.Subs.Add(subscription); nominee.PeopleRepresented.Add(beneficiary); shareHoldersRequestDto.People.Add(nominee); } if (string.IsNullOrEmpty(shareHolder.BeneficiaryEntityCountry)) { continue; } var beneficiaryEntity = _mapper.Map <NewShareHoldingEntityRequestDto>(shareHolder); beneficiaryEntity.Nominees.Add(nominee); beneficiaryEntity.Subs.Add(subscription); shareHoldersRequestDto.Entities.Add(beneficiaryEntity); } if (await _privateEntityApiClientService.ShareHoldersAsync(shareHoldersRequestDto) != null) { return(Ok()); } return(BadRequest()); }