Beispiel #1
0
        public async Task <UpdateTransactionResponseViewModel> UpdateTransaction([FromBody] DeliveryOptionsFormDataViewModel model)
        {
            string _TargetCurrencyCode = _geoCurrency.GetSessionCurrency(HttpContext);

            if (ModelState.IsValid)
            {
                var result = new { Succeeded = true };
                try
                {
                    UpdateTransactionCommandResult updateTransactionCommandResult = await _commandSender.Send <UpdateTransactionCommand, UpdateTransactionCommandResult>(new UpdateTransactionCommand
                    {
                        TransactionId            = model.TransactionId,
                        DeliveryDetail           = model.DeliveryDetail,
                        TargetCurrencyCode       = _TargetCurrencyCode,
                        EventTicketAttributeList = model.EventTicketAttributeList
                    });

                    UpdateTransactionResponseViewModel _returnvalue = new UpdateTransactionResponseViewModel
                    {
                        Success            = true,
                        TransactionId      = updateTransactionCommandResult.Id,
                        CurrencyId         = updateTransactionCommandResult.CurrencyId,
                        GrossTicketAmount  = updateTransactionCommandResult.GrossTicketAmount,
                        DeliveryCharges    = updateTransactionCommandResult.DeliveryCharges,
                        ConvenienceCharges = updateTransactionCommandResult.ConvenienceCharges,
                        ServiceCharge      = updateTransactionCommandResult.ServiceCharge,
                        DiscountAmount     = updateTransactionCommandResult.DiscountAmount,
                        NetTicketAmount    = updateTransactionCommandResult.NetTicketAmount,
                    };

                    //perform check for currency change to geo
                    _geoCurrency.DeliveryOptionsUpdate(_returnvalue, HttpContext);

                    return(_returnvalue);
                }
                catch (Exception ex)
                {
                    _logger.Log(Logging.Enums.LogCategory.Error, ex);
                    return(new UpdateTransactionResponseViewModel {
                        Success = false
                    });
                }
            }
            else
            {
                return(new UpdateTransactionResponseViewModel {
                    Success = false
                });
            }
        }
Beispiel #2
0
        public UpdateTransactionCommandResult UpdateTransactionUpdates(UpdateTransactionCommandResult updateTransactionCommandResult, string TargetCurrencyCode)
        {
            if (_IsGeoCurrencySelectionEnabled && updateTransactionCommandResult != null)
            {
                int TargetCurrencyID = GetCurrencyID(TargetCurrencyCode).Id;
                if (updateTransactionCommandResult.GrossTicketAmount.HasValue)
                {
                    updateTransactionCommandResult.GrossTicketAmount = _currencyConverter.Exchange(updateTransactionCommandResult.GrossTicketAmount.Value, GetCurrencyCode(updateTransactionCommandResult.CurrencyId).Code, TargetCurrencyCode);
                }

                if (updateTransactionCommandResult.DeliveryCharges.HasValue)
                {
                    updateTransactionCommandResult.DeliveryCharges = _currencyConverter.Exchange(updateTransactionCommandResult.DeliveryCharges.Value, GetCurrencyCode(updateTransactionCommandResult.CurrencyId).Code, TargetCurrencyCode);
                }

                if (updateTransactionCommandResult.ConvenienceCharges.HasValue)
                {
                    updateTransactionCommandResult.ConvenienceCharges = _currencyConverter.Exchange(updateTransactionCommandResult.ConvenienceCharges.Value, GetCurrencyCode(updateTransactionCommandResult.CurrencyId).Code, TargetCurrencyCode);
                }

                if (updateTransactionCommandResult.ServiceCharge.HasValue)
                {
                    updateTransactionCommandResult.ServiceCharge = _currencyConverter.Exchange(updateTransactionCommandResult.ServiceCharge.Value, GetCurrencyCode(updateTransactionCommandResult.CurrencyId).Code, TargetCurrencyCode);
                }

                if (updateTransactionCommandResult.DiscountAmount.HasValue)
                {
                    updateTransactionCommandResult.DiscountAmount = _currencyConverter.Exchange(updateTransactionCommandResult.DiscountAmount.Value, GetCurrencyCode(updateTransactionCommandResult.CurrencyId).Code, TargetCurrencyCode);
                }

                if (updateTransactionCommandResult.NetTicketAmount.HasValue)
                {
                    updateTransactionCommandResult.NetTicketAmount = _currencyConverter.Exchange(updateTransactionCommandResult.NetTicketAmount.Value, GetCurrencyCode(updateTransactionCommandResult.CurrencyId).Code, TargetCurrencyCode);
                }

                updateTransactionCommandResult.CurrencyId = TargetCurrencyID;;
            }

            return(updateTransactionCommandResult);
        }