Example #1
0
        /// <summary>
        /// create a charge
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <ChargeResultDto> ChargeCustomer(ChargeCustomerDto dto)
        {
            try
            {
                var options = new ChargeCreateOptions
                {
                    Amount              = (long)(dto.Amount * 100),
                    Currency            = _currency,
                    Description         = dto.Description,
                    SourceId            = dto.SourceId,
                    CustomerId          = dto.CustomerId,
                    TransferGroup       = dto.TransferGroupId,
                    Capture             = dto.IsCaptureImmediately,
                    StatementDescriptor = dto.CustomerStatementText
                };

                //adding meta data for charge
                options.Metadata = new Dictionary <string, string>();
                options.Metadata["OrderNumber"] = dto.OrderId;

                var service = new ChargeService();
                return(ChargeMapper.MapChargeToChargeResultDto(
                           await service.CreateAsync(options)));
            }
            catch (StripeException ex)
            {
                return(ChargeMapper.MapChargeErrorToChargeResultDto(ex));
            }
        }
        public async Task <IApplicationResult <bool> > RegisterAsync(List <ChargeMessage> messages)
        {
            IDomainResult <bool> domainResult = await ChargeEntityService.RegisterAsync(ChargeMapper.MapTo(messages));

            return(ResultMapper.MapFromDomainResult(domainResult, (domain) => domain));
        }
        public async Task <IApplicationResult <List <ChargeMessage> > > GetAsync(ChargeSearchMessage message)
        {
            IDomainResult <List <Charge> > domainResult = await ChargeEntityService.GetAsync(message.Cpf, message.ReferenceMonth);

            return(ResultMapper.MapFromDomainResult(domainResult, (domain) => ChargeMapper.MapTo(domain)));
        }