예제 #1
0
        /// <summary>
        /// Handle transfer event
        /// </summary>
        /// <param name="eventcontext"></param>
        private void HandleTransferEvent(EventContext eventcontext)
        {
            string           normalizedUri = UriHelper.NormalizeUriWithNoQueryParameters(eventcontext.EventEntity.Link.Href, eventcontext.BaseUri);
            TransferResource localResource = this.ConvertToPlatformServiceResource <TransferResource>(eventcontext);

            Transfer transfer = m_transfers.GetOrAdd(localResource.OperationId, (a) =>
            {
                Logger.Instance.Information(string.Format("[AudioVideo] Started and Add Transfer: OperationContext:{0}, Href: {1} , LoggingContext: {2}",
                                                          localResource.OperationId, normalizedUri, eventcontext.LoggingContext == null ? string.Empty : eventcontext.LoggingContext.ToString()));

                return(new Transfer(this.RestfulClient, localResource, eventcontext.BaseUri, eventcontext.EventFullHref, this));
            });

            //Remove from cache if it is a complete operation
            if (eventcontext.EventEntity.Relationship == EventOperation.Completed)
            {
                Transfer completedTransfer = null;
                Logger.Instance.Information(string.Format("[AudioVideo] Completed and remove transfer: OperationContext:{0}, Href: {1} , LoggingContext: {2}",
                                                          localResource.OperationId, normalizedUri, eventcontext.LoggingContext == null ? string.Empty : eventcontext.LoggingContext.ToString()));
                m_transfers.TryRemove(localResource.OperationId, out completedTransfer);
            }

            var eventableEntity = transfer as EventableEntity;

            eventableEntity.HandleResourceEvent(eventcontext);
        }
예제 #2
0
        public Client(Credentials credentials, IEnvironment env = null)
        {
            if (credentials == null)
            {
                throw new ArgumentNullException(nameof(credentials));
            }

            environment = env ?? Environments.Production;
            requester   = new Requester(credentials, environment, null, this.apiVersion);

            Account      = new AccountResource(requester);
            Balance      = new BalanceResource(requester);
            Charges      = new ChargeResource(requester);
            Customers    = new CustomerResource(requester);
            Disputes     = new DisputeResource(requester);
            Events       = new EventResource(requester);
            Forex        = new ForexResource(requester);
            Links        = new LinkResource(requester);
            Occurrences  = new OccurrenceResource(requester);
            Sources      = new PaymentSourceResource(requester);
            Receipts     = new ReceiptResource(requester);
            Recipients   = new RecipientResource(requester);
            Refunds      = new RefundResource(requester);
            Schedules    = new ScheduleResource(requester);
            Tokens       = new TokenResource(requester);
            Transactions = new TransactionResource(requester);
            Transfers    = new TransferResource(requester);
        }
예제 #3
0
        public Client(Credentials credentials) {
            if (credentials == null) throw new ArgumentNullException("credentials");
            requester = new Requester(credentials);

            Account = new AccountResource(requester);
            Balance = new BalanceResource(requester);
            Cards = new CardResourceShim(requester);
            Charges = new ChargeResource(requester);
            Customers = new CustomerResource(requester);
            Disputes = new DisputeResource(requester);
            Events = new EventResource(requester);
            Recipients = new RecipientResource(requester);
            Refunds = new RefundResourceShim(requester);
            Tokens = new TokenResource(requester);
            Transactions = new TransactionResource(requester);
            Transfers = new TransferResource(requester);
        }
예제 #4
0
파일: Client.cs 프로젝트: SallyAbbas/Testms
        public Client(Credentials credentials)
        {
            if (credentials == null)
            {
                throw new ArgumentNullException(nameof(credentials));
            }
            requester = new Requester(credentials);

            Account      = new AccountResource(requester);
            Balance      = new BalanceResource(requester);
            Cards        = new CardResourceShim(requester);
            Charges      = new ChargeResource(requester);
            Customers    = new CustomerResource(requester);
            Disputes     = new DisputeResource(requester);
            Events       = new EventResource(requester);
            Links        = new LinkResource(requester);
            Recipients   = new RecipientResource(requester);
            Refunds      = new RefundResourceShim(requester);
            Tokens       = new TokenResource(requester);
            Transactions = new TransactionResource(requester);
            Transfers    = new TransferResource(requester);
        }
예제 #5
0
        public async Task <bool> BuildStorageDoTransfer(TransferResource data)
        {
            return(await _contextAction(connection =>
            {
                var cr = _getCurrentUser(connection);
                var crPremium = cr.GetPremiumWorkModel(connection, _storeService);
                if (data.SourceType && data.TargetType)
                {
                    _transferResourceService.TransPlanetToPlanet(connection, data.SourceId, data.TargetId, data.Resources, cr.UserId, crPremium);
                }

                else if (data.SourceType && !data.TargetType)
                {
                    _transferResourceService.TransPlanetToMother(connection, data.SourceId, data.Resources, cr.UserId,
                                                                 crPremium);
                }
                else if (!data.SourceType && data.TargetType)
                {
                    _transferResourceService.TransMotherToPlanet(connection, data.TargetId, data.Resources, cr.UserId,
                                                                 crPremium);
                }
                return true;
            }));
        }