Esempio n. 1
0
        private async Task BeneficiarySessionCreatedAsync(BeneficiarySessionCreatedEvent evt)
        {
            var transaction = new Transaction
            {
                Id               = Guid.NewGuid().ToString(),
                Status           = TransactionStatus.Created,
                SessionId        = evt.SessionId,
                CreationDateTime = DateTime.UtcNow,
                Type             = TransactionType.Incoming
            };

            await _sessionsRepository.CreateAsync(evt.Session.SessionInfo);

            _benefeciarySessionsDict[evt.Session.SessionInfo.Id] = evt.Session;

            await _transactionsRepository.CreateAsync(transaction);
        }
        public void FillTransactionData(Transaction transaction, TransferRequestMessage message)
        {
            if (message.Originator.PostalAddress != null)
            {
                transaction.OriginatorPostalAddress = new PostalAddress
                {
                    Street      = message.Originator.PostalAddress.StreetName,
                    AddressLine = message.Originator.PostalAddress.AddressLine,
                    Building    = message.Originator.PostalAddress.BuildingNumber,
                    Country     = message.Originator.PostalAddress.Country,
                    PostCode    = message.Originator.PostalAddress.PostCode,
                    Town        = message.Originator.PostalAddress.TownName
                };
            }

            if (message.Originator.PlaceOfBirth != null)
            {
                transaction.OriginatorPlaceOfBirth = new PlaceOfBirth
                {
                    Country = message.Originator.PlaceOfBirth.CountryOfBirth,
                    Date    = message.Originator.PlaceOfBirth.DateOfBirth,
                    Town    = message.Originator.PlaceOfBirth.CityOfBirth
                };
            }

            transaction.OriginatorJuridicalPersonIds = message.Originator.JuridicalPersonId?.Select(
                x => new JuridicalPersonId(x.Identifier, x.IdentificationType, x.IssuingCountry,
                                           x.NonStateIssuer))
                                                       .ToArray();
            transaction.OriginatorNaturalPersonIds = message.Originator.NaturalPersonId?.Select(
                x => new NaturalPersonId(x.Identifier, x.IdentificationType, x.IssuingCountry,
                                         x.NonStateIssuer))
                                                     .ToArray();
            transaction.OriginatorBic       = message.Originator.BIC;
            transaction.Amount              = message.Transfer.Amount;
            transaction.Asset               = message.Transfer.VirtualAssetType;
            transaction.BeneficiaryVaan     = message.Beneficiary.VAAN.Replace(" ", "");
            transaction.OriginatorVaan      = message.Originator.VAAN.Replace(" ", "");
            transaction.OriginatorFullName  = message.Originator.Name;
            transaction.BeneficiaryFullName = message.Beneficiary.Name;
        }
 public Originator GetOriginatorFromTx(Transaction transaction)
 {
     return(new Originator(
                transaction.OriginatorFullName,
                transaction.OriginatorVaan,
                new Messaging.Messages.Entities.PostalAddress(
                    transaction.OriginatorPostalAddress.Street,
                    transaction.OriginatorPostalAddress.Building,
                    transaction.OriginatorPostalAddress.AddressLine,
                    transaction.OriginatorPostalAddress.PostCode,
                    transaction.OriginatorPostalAddress.Town,
                    transaction.OriginatorPostalAddress.Country),
                transaction.OriginatorPlaceOfBirth != null
             ? new Messaging.Messages.Entities.PlaceOfBirth(
                    transaction.OriginatorPlaceOfBirth.Date,
                    transaction.OriginatorPlaceOfBirth.Town,
                    transaction.OriginatorPlaceOfBirth.Country)
             : null,
                transaction.OriginatorNaturalPersonIds,
                transaction.OriginatorJuridicalPersonIds,
                transaction.OriginatorBic));
 }
        public Transaction GenerateTransactionData(
            string originatorFullName,
            string originatorVaan,
            PlaceOfBirth originatorPlaceOfBirth,
            PostalAddress originatorPostalAddress,
            string beneficiaryFullName,
            string beneficiaryVaan,
            VirtualAssetType asset,
            decimal amount,
            NaturalPersonId[] naturalPersonIds,
            JuridicalPersonId[] juridicalPersonIds,
            string bic,
            TransactionType type)
        {
            var sanitizedBeneficiaryVaan = beneficiaryVaan.Replace(" ", "");
            var sanitizedOriginatorVaan  = originatorVaan.Replace(" ", "");

            var transaction = new Transaction
            {
                Status = TransactionStatus.Created,
                OriginatorPostalAddress = originatorPostalAddress,
                OriginatorPlaceOfBirth  = originatorPlaceOfBirth,
                Amount                       = amount,
                Asset                        = asset,
                Id                           = Guid.NewGuid().ToString(),
                CreationDateTime             = DateTime.UtcNow,
                BeneficiaryVaan              = sanitizedBeneficiaryVaan,
                OriginatorVaan               = sanitizedOriginatorVaan,
                OriginatorFullName           = originatorFullName,
                BeneficiaryFullName          = beneficiaryFullName,
                OriginatorJuridicalPersonIds = juridicalPersonIds,
                OriginatorBic                = bic,
                OriginatorNaturalPersonIds   = naturalPersonIds,
                Type                         = type
            };

            return(transaction);
        }
Esempio n. 5
0
        public async Task <Transaction> RegisterOutgoingTransactionAsync(
            Transaction transaction,
            VirtualAssetsAccountNumber virtualAssetsAccountNumber)
        {
            transaction.Status = TransactionStatus.Created;

            var originatorSession = await _vaspClient.CreateOriginatorSessionAsync(virtualAssetsAccountNumber.VaspCode);

            _originatorSessionsDict.TryAdd(originatorSession.Id, originatorSession);

            transaction.SessionId = originatorSession.Id;

            await _transactionsRepository.CreateAsync(transaction);

            await _sessionsRepository.CreateAsync(originatorSession.SessionInfo);

            await originatorSession.SessionRequestAsync(_vaspInformation);

            transaction.Status = TransactionStatus.SessionRequested;

            await _transactionsRepository.UpdateAsync(transaction);

            return(transaction);
        }
 public Beneficiary GetBeneficiaryFromTx(Transaction transaction)
 {
     return(new Beneficiary(transaction.BeneficiaryFullName, transaction.BeneficiaryVaan));
 }