Fixed input model attributes

This commit is contained in:
Khwezi Mngoma
2026-05-20 17:47:53 +02:00
parent 84a50e64bf
commit 2e59f4d8ed
2 changed files with 7 additions and 1 deletions
+1
View File
@@ -93,6 +93,7 @@
<label class="console-field-label">Primary Cover</label> <label class="console-field-label">Primary Cover</label>
<div class="book-cover-dropzone"> <div class="book-cover-dropzone">
<InputFile OnChange="HandleMainImageUpload" accept=".png,.jpg,.jpeg,.webp" class="hidden-file-input" id="main-image-file" /> <InputFile OnChange="HandleMainImageUpload" accept=".png,.jpg,.jpeg,.webp" class="hidden-file-input" id="main-image-file" />
<ValidationMessage For="@(() => ProductModel.ImageUrl)" style="color: #ff5722; font-size: 0.75rem;" />
@if (string.IsNullOrEmpty(ProductModel.ImageUrl)) @if (string.IsNullOrEmpty(ProductModel.ImageUrl))
{ {
+6 -1
View File
@@ -8,7 +8,6 @@ public partial class CreateProduct([FromKeyedServices(BookshopBucketName)] IS3Se
private bool isCalendarOpen = false; private bool isCalendarOpen = false;
private DateTime calendarViewingMonth = DateTime.Today; private DateTime calendarViewingMonth = DateTime.Today;
private List<DateTime?> calendarDays = new(); private List<DateTime?> calendarDays = new();
private string currentCalendarMonthYearText => calendarViewingMonth.ToString("MMMM yyyy");
private readonly CancellationTokenSource cancellationTokenSource = new(); private readonly CancellationTokenSource cancellationTokenSource = new();
private CancellationToken cancellationToken; private CancellationToken cancellationToken;
@@ -189,27 +188,33 @@ public partial class CreateProduct([FromKeyedServices(BookshopBucketName)] IS3Se
public class CreateProductModel public class CreateProductModel
{ {
[MaxLength(128)]
[Required(ErrorMessage = "Product name is required.")] [Required(ErrorMessage = "Product name is required.")]
public string? Name { get; set; } public string? Name { get; set; }
[MaxLength(512)]
[Required(ErrorMessage = "Summary is required.")] [Required(ErrorMessage = "Summary is required.")]
public string? Summary { get; set; } public string? Summary { get; set; }
[MaxLength(2048)]
[Required(ErrorMessage = "Description is required.")] [Required(ErrorMessage = "Description is required.")]
public string? Description { get; set; } public string? Description { get; set; }
[Range(0.01, double.MaxValue, ErrorMessage = "Price must be greater than zero.")] [Range(0.01, double.MaxValue, ErrorMessage = "Price must be greater than zero.")]
public decimal Price { get; set; } public decimal Price { get; set; }
[MaxLength(128)]
[Required(ErrorMessage = "Author metadata is required.")] [Required(ErrorMessage = "Author metadata is required.")]
public string? Author { get; set; } public string? Author { get; set; }
[Required(ErrorMessage = "Publication Date is required.")] [Required(ErrorMessage = "Publication Date is required.")]
public DateTime PublishDate { get; set; } = DateTime.Today; public DateTime PublishDate { get; set; } = DateTime.Today;
[MaxLength(255)]
[Required(ErrorMessage = "Copyright Information field is required.")] [Required(ErrorMessage = "Copyright Information field is required.")]
public string? CopyrightInfo { get; set; } public string? CopyrightInfo { get; set; }
[MaxLength(128)]
[Required(ErrorMessage = "ISBN code is required.")] [Required(ErrorMessage = "ISBN code is required.")]
[RegularExpression(@"^(?=(?:\D*\d){10}(?:(?:\D*\d){3})?$)[\d-]+$", ErrorMessage = "Please enter a valid ISBN-10 or ISBN-13 string.")] [RegularExpression(@"^(?=(?:\D*\d){10}(?:(?:\D*\d){3})?$)[\d-]+$", ErrorMessage = "Please enter a valid ISBN-10 or ISBN-13 string.")]
public string? Isbn { get; set; } public string? Isbn { get; set; }