using InABox.Core; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PRS.Shared; public class LicenseRegistrationCompanyDetails : EnclosedEntity { [TextBoxEditor] [EditorSequence(1)] public string CompanyName { get; set; } [CodeEditor(Editable = Editable.Enabled)] [EditorSequence(2)] public string ABN { get; set; } [TextBoxEditor] [EditorSequence(3)] public string Telephone { get; set; } [TextBoxEditor] [EditorSequence(4)] public string Email { get; set; } [EditorSequence("Post To",1)] [Caption("")] public Address PostalAddress => InitializeField(ref _postalAddress, nameof(PostalAddress)); private Address? _postalAddress; [EditorSequence("Deliver To",1)] [Caption("")] public Address DeliveryAddress => InitializeField(ref _deliveryAddress, nameof(DeliveryAddress)); private Address? _deliveryAddress; } public class LicenseRegistrationCardDetails : EnclosedEntity { [TextBoxEditor] [EditorSequence("Credit Card",1)] public string CardNumber { get; set; } [ComboLookupEditor(typeof(CreditCardMonthGenerator))] [EditorSequence("Credit Card",2)] public string Month { get; set; } private class CreditCardMonthGenerator : LookupGenerator { public CreditCardMonthGenerator(object[] items) : base(items) { AddValue("01", "January"); AddValue("02", "February"); AddValue("03", "March"); AddValue("04", "April"); AddValue("05", "May"); AddValue("06", "June"); AddValue("07", "July"); AddValue("08", "August"); AddValue("09", "September"); AddValue("10", "October"); AddValue("11", "November"); AddValue("12", "December"); } } [ComboLookupEditor(typeof(CreditCardYearGenerator))] [EditorSequence("Credit Card",3)] public string Year { get; set; } private class CreditCardYearGenerator : LookupGenerator { public CreditCardYearGenerator(object[] items) : base(items) { for (var i = 0; i < 10; i++) { var year = DateTime.Today.Year + i; AddValue(year.ToString(), year.ToString()); } } } [PasswordEditor] [EditorSequence("Credit Card",4)] public string Cvv { get; set; } } public class LicenseRenewalRequest : BaseObject { public LicenseRegistrationCompanyDetails Company { get; set; } = new (); public LicenseData? OldLicense { get; set; } public DateTime DateRenewed { get; set; } public DateTime NewExpiry { get; set; } public LicenseTrackingItem[]? LicenseTracking { get; set; } public String[] Addresses { get; set; } = Array.Empty(); public double Gross{ get; set; } public double Discount { get; set; } public double Net { get; set; } public string TransactionID { get; set; } = ""; } public class LicenseRenewalResult { // I'm guessing this will be happening at the server as well public String License { get; set; } }