Files
jdescopingtool/OLD/DataModel/ViewModels/SearchViewModel.cs
T
Joseph Doherty 26ff8d9b4f Initial commit: JDE Scoping Tool migration project
Set up repository with legacy .NET Framework 4.8 source (OLD/),
new .NET 10 Blazor solution (NEW/), OpenSpec specifications,
documentation, and project configuration.
2026-01-02 07:43:29 -05:00

103 lines
2.7 KiB
C#
Executable File

using System;
using DataModel.Models;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace DataModel.ViewModels
{
/// <summary>
/// View model for search
/// </summary>
public class SearchViewModel
{
/// <summary>
/// PK ID of search
/// </summary>
public int ID { get; set; }
/// <summary>
/// User name of user that created search
/// </summary>
public string UserName { get; set; }
/// <summary>
/// User-friendly name for search
/// </summary>
public string Name { get; set; }
/// <summary>
/// Current search status
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public SearchStatus Status { get; set; }
/// <summary>
/// Timestamp search was submitted
/// </summary>
public DateTime? SubmitDT { get; set; }
/// <summary>
/// Timestamp search was started
/// </summary>
public DateTime? StartDT { get; set; }
/// <summary>
/// Timestamp search was completed
/// </summary>
public DateTime? EndDT { get; set; }
/// <summary>
/// Search critera
/// </summary>
public SearchCriteriaViewModel Criteria { get; set; }
/// <summary>
/// Constructor
/// </summary>
public SearchViewModel()
{
Criteria = new SearchCriteriaViewModel();
}
/// <summary>
/// Constructor
/// </summary>
/// <param name="search">Search specifications to copy</param>
public SearchViewModel(Search search) : this()
{
if (search == null)
{
return;
}
ID = search.ID;
UserName = search.UserName;
Name = search.Name;
Status = search.Status;
SubmitDT = search.SubmitDT;
StartDT = search.StartDT;
EndDT = search.EndDT;
Criteria = new SearchCriteriaViewModel(search.Criteria);
}
/// <summary>
/// Converts the view model into standard model
/// </summary>
/// <returns>Compressed search model</returns>
public Search ToModel()
{
return new Search()
{
ID = ID,
UserName = UserName,
Name = Name,
Status = Status,
Criteria = Criteria.ToModel(),
SubmitDT = SubmitDT,
StartDT = StartDT,
EndDT = EndDT
};
}
}
}