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.
This commit is contained in:
Executable
+102
@@ -0,0 +1,102 @@
|
||||
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
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user