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);
        }
Exemple #2
0
        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());
        }