示例#1
0
        public async Task <ActionResult> PaymentResult(PaymentResultViewModel model)
        {
            var data = Request.Form.ToDictionary(q => q.Key, q => string.Join(",", q.Value));
            var executePaymentDto = ObjectMapper.Map <ExecutePaymentDto>(model);

            executePaymentDto.AdditionalData = data;

            await _paymentAppService.ExecutePayment(executePaymentDto);

            return(RedirectToAction("Index"));
        }
        private async Task <string> ExecutePaymentAsync(int editionId, PaymentPeriodType paymentPeriodType, SubscriptionPaymentGatewayType gateway)
        {
            var data = Request.Form.ToDictionary(q => q.Key, q => string.Join(",", q.Value));

            var result = await _paymentAppService.ExecutePayment(new ExecutePaymentDto
            {
                EditionId          = editionId,
                EditionPaymentType = EditionPaymentType.NewRegistration,
                Gateway            = gateway,
                AdditionalData     = data
            });

            var paymentId = result.GetId();

            _paymentCache.AddCacheItem(new PaymentCacheItem(gateway, paymentPeriodType, paymentId));

            return(paymentId);
        }