using System.ComponentModel.DataAnnotations; namespace JdeScoping.Client.Models; /// /// View model for displaying search information in lists and details. /// public class SearchViewModel { public int Id { get; set; } [Required(ErrorMessage = "Name is required.")] public string Name { get; set; } = string.Empty; public string UserName { get; set; } = string.Empty; public string Status { get; set; } = string.Empty; public DateTime? SubmitDt { get; set; } public DateTime? StartDt { get; set; } public DateTime? EndDt { get; set; } public SearchCriteriaViewModel Criteria { get; set; } = new(); /// /// Gets the background color based on status. /// public string StatusColor => Status switch { "Error" => "#FF6347", "Ended" => "#90EE90", "Running" => "#87CEEB", _ => "#EEEEEE" }; /// /// Returns true if the search has downloadable results. /// public bool HasResults => Status == "Ended"; /// /// Returns true if the search is read-only (already submitted). /// public bool IsReadOnly => Status != "New"; }