btcpayserver/BTCPayServer/Models/InvoicingModels/CreateInvoiceModel.cs
Andrew Camilleri 022285806b
Form Builder (#4137)
* wip

* Cleanups

* UI updates

* Update UIFormsController.cs

* Make predefined forms usable statically

* Add support for pos app + forms

* pay request form rough support

* invoice form through receipt page

* Display form name in inherit from store setting

* Do not request additional forms on invoice from pay request

* fix up code

* move checkoutform id in checkout appearance outside of checkotu v2 toggle

* general fixes for form system

* fix pav bug

* UI updates

* Fix warnings in Form builder (#4331)

* Fix build warnings about string?

Enable nullable on UIFormsController.cs
Fixes CS8632 The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

* Clean up lack of space in injected services in Submit() of UIFormsController.cs

* Remove unused variables (CS0219) and assignment of nullable value to nullable type (CS8600)

* Cleanup double semicolons while we're at tit

* Fix: If reverse proxy wasn't well configured, and error message should have been displayed (#4322)

* fix monero issue

* Server Settings: Update Policies page (#4326)

Handles the multiple submit buttons on that page and closes #4319.

Contains some UI unifications with other pages and also shows the block explorers without needing to toggle the section via JS.

* Change confirmed to settled. (#4328)

* POS: Fix null pointer

Introduced in #4307, the referenced object needs to be `itemChoice` instead of `choice`.

* Add documentation link to plugins (#4329)

* Add documentation link to plugins

* Minor UI updates

Co-authored-by: Dennis Reimann <mail@dennisreimann.de>

* Fix flaky test (#4330)

* Fix flaky test

* Update BTCPayServer/PayoutProcessors/BaseAutomatedPayoutProcessor.cs

Co-authored-by: d11n <mail@dennisreimann.de>

Co-authored-by: d11n <mail@dennisreimann.de>

* Remove invoice and store level form

* add form test

* fix migration for forms

* fix

* make pay request form submission redirect to invoice

* Refactor FormQuery to only be able to query single store and single form

* Put the Authorize at controller level on UIForms

* Fix warnings

* Fix ef request

* Fix query to forms, ensure no permission bypass

* Fix modify

* Remove storeId from step form

* Remove useless storeId parameter

* Hide custom form feature in UI

* Minor cleanups

* Remove custom form options from select for now

* More minor syntax cleanups

* Update test

* Add index - needs migration

* Refactoring: Use PostRedirect instead of TempData for data transfer

* Remove untested and unfinished code

* formResponse should be a JObject, not a string

* Fix case for Form type

Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
Co-authored-by: JesterHodl <103882255+jesterhodl@users.noreply.github.com>
Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>
Co-authored-by: Andreas Tasch <andy.tasch@gmail.com>
2022-11-25 10:42:55 +09:00

94 lines
2 KiB
C#

using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using BTCPayServer.Services.Apps;
using BTCPayServer.Validation;
using Microsoft.AspNetCore.Mvc.Rendering;
namespace BTCPayServer.Models.InvoicingModels
{
public class CreateInvoiceModel
{
public decimal? Amount
{
get; set;
}
public string Currency
{
get; set;
}
[Required]
[DisplayName("Store Id")]
public string StoreId
{
get; set;
}
[DisplayName("Order Id")]
public string OrderId
{
get; set;
}
[DisplayName("Item Description")]
public string ItemDesc
{
get; set;
}
[DisplayName("Default payment method on checkout")]
public string DefaultPaymentMethod
{
get; set;
}
[DisplayName("POS Data")]
public string PosData
{
get; set;
}
[MailboxAddress]
[DisplayName("Buyer Email")]
public string BuyerEmail
{
get; set;
}
[Uri]
[DisplayName("Notification URL")]
public string NotificationUrl
{
get; set;
}
[DisplayName("Supported Transaction Currencies")]
public List<string> SupportedTransactionCurrencies
{
get; set;
}
[DisplayName("Available Payment Methods")]
public SelectList AvailablePaymentMethods
{
get; set;
}
[MailboxAddress]
[DisplayName("Notification Email")]
public string NotificationEmail
{
get; set;
}
[DisplayName("Require Refund Email")]
public RequiresRefundEmail RequiresRefundEmail
{
get; set;
}
public bool UseNewCheckout { get; set; }
}
}