/// <summary> /// Instantiates a new <see cref="Transaction"/> with the provided parameters. /// </summary> /// <param name="id">A unique reference to this transaction.</param> /// <param name="created">The <seealso cref="DateTime"/> the transaction was created.</param> /// <param name="updated">The <seealso cref="DateTime"/> the transaction was last updated.</param> /// <param name="type">The transaction type.</param> /// <param name="state">The last known state of this transaction.</param> /// <param name="number">Unique number of this transaction.</param> /// <param name="amount">Amount to charge the payer.</param> /// <param name="vatAmount">Amount to charge the payer as value added taxes.</param> /// <param name="description">A textual description of the payment.</param> /// <param name="payeeReference">Unique reference to this transaction in the merchant system.</param> /// <param name="isOperational">Indicates if this transaction was operational.</param> /// <param name="operations">Available operations for this transaction.</param> /// <param name="activity">Latest activity to happen to this transaction.</param> public Transaction(Uri id, DateTime created, DateTime updated, TransactionType type, State state, long number, Amount amount, Amount vatAmount, string description, string payeeReference, bool isOperational, IOperationList operations, string activity) : base(id) { Created = created; Updated = updated; Type = type; State = state; Number = number; Amount = amount; VatAmount = vatAmount; Description = description; PayeeReference = payeeReference; IsOperational = isOperational; Operations = operations; Activity = activity; }
public MobilePayPaymentOperations(IOperationList operations, HttpClient client) { foreach (var httpOperation in operations) { switch (httpOperation.Rel.Value) { case PaymentResourceOperations.UpdatePaymentAbort: Abort = async payload => { var requestDto = new PaymentAbortRequestDto(payload); var responseDto = await client.SendAsJsonAsync <MobilePayPaymentResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new MobilePayPaymentResponse(responseDto, client)); }; break; case PaymentResourceOperations.RedirectAuthorization: RedirectAuthorization = httpOperation; break; case PaymentResourceOperations.ViewAuthorization: ViewAuthorization = httpOperation; break; case PaymentResourceOperations.CreateCapture: Capture = async payload => { var requestDto = new MobilePayPaymentCaptureRequestDto(payload); var responseDto = await client.SendAsJsonAsync <CaptureResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new CaptureResponse(responseDto)); }; break; case PaymentResourceOperations.CreateCancellation: Cancel = async payload => { var requestDto = new MobilePayPaymentCancelRequestDto(payload); return(await client.SendAsJsonAsync <CancellationResponse>(httpOperation.Method, httpOperation.Href, requestDto)); }; break; case PaymentResourceOperations.CreateReversal: Reverse = async payload => { var requestDto = new MobilePayPaymentReversalRequestDto(payload); return(await client.SendAsJsonAsync <ReversalResponse>(httpOperation.Method, httpOperation.Href, requestDto)); }; break; } Add(httpOperation.Rel, httpOperation); } }
public VippsPaymentOperations(IOperationList operations, HttpClient client) { foreach (var httpOperation in operations) { switch (httpOperation.Rel.Value) { case PaymentResourceOperations.ViewAuthorization: ViewAuthorization = httpOperation; break; case PaymentResourceOperations.DirectAuthorization: DirectAuthorization = async payload => { var requestDto = new VippsPaymentAuthorizationRequestDto(payload); var dto = await client.SendAsJsonAsync <VippsPaymentAuthorizationResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new VippsPaymentAuthorizationResponse(dto.Payment, dto.Authorization.Map())); }; break; case PaymentResourceOperations.CreateCapture: Capture = async payload => { var requestDto = new VippsPaymentCaptureRequestDto(payload); var dto = await client.SendAsJsonAsync <CaptureResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new CaptureResponse(dto)); }; break; case PaymentResourceOperations.CreateCancellation: Cancel = async payload => { var requestDto = new VippsPaymentCancelRequestDto(payload); var dto = await client.SendAsJsonAsync <CancellationResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new CancellationResponse(dto.Payment, dto.Cancellation.Map())); }; break; case PaymentResourceOperations.CreateReversal: Reversal = async payload => { var requestDto = new VippsPaymentReversalRequestDto(payload); var dto = await client.SendAsJsonAsync <ReversalResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new ReversalResponse(dto.Payment, dto.Reversal.Map())); }; break; } Add(httpOperation.Rel, httpOperation); } }
public SwishPaymentOperations(IOperationList operations, HttpClient client) { foreach (var httpOperation in operations) { switch (httpOperation.Rel.Value) { case PaymentResourceOperations.UpdatePaymentAbort: Abort = async payload => { var payloadDto = new PaymentAbortRequestDto(payload); var dto = await client.SendAsJsonAsync <SwishPaymentResponseDto>(httpOperation.Method, httpOperation.Href, payloadDto); return(new SwishPaymentResponse(dto, client)); }; break; case PaymentResourceOperations.CreateSale: Sale = async payload => { var payloadDto = new SwishPaymentSaleRequestDto(payload); var dto = await client.SendAsJsonAsync <SwishPaymentSaleResponseDto>(httpOperation.Method, httpOperation.Href, payloadDto); return(new SwishPaymentSaleResponse(dto.Payment, dto.Sale.Map())); }; break; case PaymentResourceOperations.RedirectSale: RedirectSale = httpOperation; break; case PaymentResourceOperations.ViewSales: ViewSales = httpOperation; break; case PaymentResourceOperations.CreateReversal: Reverse = async payload => { var payloadDto = new SwishPaymentReversalRequestDto(payload); var dto = await client.SendAsJsonAsync <ReversalResponseDto>(httpOperation.Method, httpOperation.Href, payloadDto); return(new ReversalResponse(dto.Payment, dto.Reversal.Map())); }; break; case PaymentResourceOperations.PaidPayment: PaidPayment = httpOperation; break; } Add(httpOperation.Rel, httpOperation); } }
/// <summary> /// Consturcts a <see cref="ConsumerOperations"/> holding all currently available operations for a consumer. /// </summary> /// <param name="operations">A list of available operations.</param> public ConsumerOperations(IOperationList operations) { foreach (var httpOperation in operations) { switch (httpOperation.Rel.Value) { case ConsumerResourceOperations.RedirectConsumerIdentification: RedirectConsumerIdentification = httpOperation; break; case ConsumerResourceOperations.ViewConsumerIdentification: ViewConsumerIdentification = httpOperation; break; } Add(httpOperation.Rel, httpOperation); } }
public TrustlyPaymentOperations(IOperationList operations, HttpClient client) { foreach (var httpOperation in operations) { switch (httpOperation.Rel.Value) { case PaymentResourceOperations.RedirectSale: RedirectSale = httpOperation; break; case PaymentResourceOperations.ViewSale: ViewSale = httpOperation; break; case PaymentResourceOperations.UpdatePaymentAbort: Abort = async payload => { var requestDto = new PaymentAbortRequestDto(payload); var dto = await client.SendAsJsonAsync <TrustlyPaymentResonseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new TrustlyPayment(dto.Payment)); }; break; case PaymentResourceOperations.CreateReversal: Reverse = async payload => { var requestDto = new TrustlyPaymentReversalRequestDto(payload); var dto = await client.SendAsJsonAsync <ReversalResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new ReversalResponse(dto.Payment, dto.Reversal.Map())); }; break; case PaymentResourceOperations.CreateCancellation: Cancel = async payload => { var requestDto = new TrustlyPaymentCancelRequestDto(payload); var dto = await client.SendAsJsonAsync <CancellationResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new CancellationResponse(dto.Payment, dto.Cancellation.Map())); }; break; } Add(httpOperation.Rel, httpOperation); } }
public PaymentOrderOperations(IOperationList operations, HttpClient client) { foreach (var httpOperation in operations) { switch (httpOperation.Rel.Value) { case PaymentOrderResourceOperations.CreatePaymentOrderCapture: Capture = async payload => { var requestDto = new PaymentOrderCaptureRequestDto(payload); var dto = await client.SendAsJsonAsync <CaptureResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new CaptureResponse(dto)); }; break; case PaymentOrderResourceOperations.CreatePaymentOrderCancel: Cancel = async payload => { var requestDto = new PaymentOrderCancelRequestDto(payload); var dto = await client.SendAsJsonAsync <CancelResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new CancellationResponse(dto.Payment, dto.Cancellation.Map())); }; break; case PaymentOrderResourceOperations.CreatePaymentOrderReversal: Reverse = async payload => { var url = httpOperation.Href.GetUrlWithQueryString(PaymentExpand.All); var requestDto = new PaymentOrderReversalRequestDto(payload); var paymentOrderResponseContainer = await client.SendAsJsonAsync <ReversalResponseDto>(httpOperation.Method, url, requestDto); return(new ReversalResponse(paymentOrderResponseContainer.Payment, paymentOrderResponseContainer.Reversal.Map())); }; break; case PaymentOrderResourceOperations.UpdatePaymentOrderUpdateOrder: Update = async payload => { var url = httpOperation.Href.GetUrlWithQueryString(PaymentExpand.All); var requestDto = new PaymentOrderUpdateRequestDto(payload); var paymentOrderResponseContainer = await client.SendAsJsonAsync <PaymentOrderResponseDto>(httpOperation.Method, url, requestDto); return(new PaymentOrderResponse(paymentOrderResponseContainer, client)); }; break; case PaymentOrderResourceOperations.UpdatePaymentOrderAbort: Abort = async payload => { var url = httpOperation.Href.GetUrlWithQueryString(PaymentExpand.All); var paymentOrderResponseContainer = await client.SendAsJsonAsync <PaymentOrderResponseDto>(httpOperation.Method, url, payload); return(new PaymentOrderResponse(paymentOrderResponseContainer, client)); }; break; case PaymentOrderResourceOperations.ViewPaymentOrder: View = httpOperation; break; } Add(httpOperation.Rel, httpOperation); } }
public InvoicePaymentOperations(IOperationList operations, HttpClient client) { foreach (var httpOperation in operations) { switch (httpOperation.Rel.Value) { case PaymentResourceOperations.UpdatePaymentAbort: Abort = async payload => { var requestDto = new PaymentAbortRequestDto(payload); var dto = await client.SendAsJsonAsync <InvoicePaymentResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new InvoicePaymentResponse(dto, client)); }; break; case PaymentResourceOperations.RedirectAuthorization: RedirectAuthorization = httpOperation; break; case PaymentResourceOperations.ViewAuthorization: ViewAuthorization = httpOperation; break; case PaymentResourceOperations.CreateCapture: Capture = async payload => { var requestDto = new InvoicePaymentCaptureRequestDto(payload); var dto = await client.SendAsJsonAsync <CaptureResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new CaptureResponse(dto)); }; break; case PaymentResourceOperations.CreateCancellation: Cancel = async payload => { var requestDto = new InvoicePaymentCancelRequestDto(payload); var dto = await client.SendAsJsonAsync <CancellationResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new CancellationResponse(dto.Payment, dto.Cancellation.Map())); }; break; case PaymentResourceOperations.CreateReversal: Reversal = async payload => { var requestDto = new InvoicePaymentReversalRequestDto(payload); var dto = await client.SendAsJsonAsync <ReversalResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new ReversalResponse(dto.Payment, dto.Reversal.Map())); }; break; case PaymentResourceOperations.CreateApprovedLegalAddress: ApprovedLegalAddress = async payload => { var requestDto = new InvoiceApprovedLegalAddressRequestDto(payload); var dto = await client.SendAsJsonAsync <ApprovedLegalAddressResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new ApprovedLegalAddressResponse(dto.Payment, dto.ApprovedLegalAddress.Map())); }; break; case PaymentResourceOperations.DirectAuthorization: DirectAuthorization = async payload => { var requestDto = new InvoicePaymentAuthorizationRequestDto(payload); var dto = await client.SendAsJsonAsync <InvoicePaymentAuthorizationResponseDto>(httpOperation.Method, httpOperation.Href, requestDto); return(new InvoicePaymentAuthorizationResponse(dto.Payment, dto.Map())); }; break; } Add(httpOperation.Rel, httpOperation); } }
public OperationList(IOperationList operationList) { _operationList = operationList; }