26ff8d9b4f
Set up repository with legacy .NET Framework 4.8 source (OLD/), new .NET 10 Blazor solution (NEW/), OpenSpec specifications, documentation, and project configuration.
103 lines
2.7 KiB
C#
Executable File
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
|
|
};
|
|
}
|
|
}
|
|
}
|