public long CreateTransfer(IOriginalTransfer originalTransfer)
        {
            if (null == originalTransfer)
            {
                throw new ArgumentNullException(nameof(originalTransfer));
            }

            var externalTransferService = Container.Resolve <IExternalTransferService>();

            return(externalTransferService.CreateTransfer(originalTransfer));
        }
Example #2
0
        public long CreateTransfer(IOriginalTransfer originalTransfer)
        {
            if (null == originalTransfer)
            {
                throw new ArgumentNullException(nameof(originalTransfer));
            }

            var request = new OriginalTransfer(originalTransfer.PaymentId,
                                               Purse.Parse(originalTransfer.SourcePurse), Purse.Parse(originalTransfer.TargetPurse),
                                               (Amount)originalTransfer.Amount)
            {
                Description = (Description)originalTransfer.Description,
                Period      = originalTransfer.ProtectionPeriod,
                Code        = (Description)originalTransfer.ProtectionCode,
                Force       = originalTransfer.Force,
                Initializer = Session.AuthenticationService.ObtainInitializer()
            };

            if (null != originalTransfer.InvoiceId)
            {
                request.InvoiceId = (uint)originalTransfer.InvoiceId.Value;
            }

            TransferEnvelope response;

            try
            {
                response = request.Submit();
            }
            catch (WmException exception)
            {
                throw new ExternalServiceException(exception.Message, exception);
            }

            return(response.Transfer.PrimaryId);
        }