shoc-backend/SeaHaven.Services/Helpers/WorkOrderBoardFieldNames.cs

66 lines
2.3 KiB
C#

namespace SeaHaven.Services.Helpers
{
public static class WorkOrderBoardFieldNames
{
public const string WoNumber = "woNumber";
public const string WorkOrderType = "workOrderType";
public const string SiteCode = "siteCode";
public const string LifecycleStatus = "lifecycleStatus";
public const string AssignTo = "assignTo";
public const string DueDate = "dueDate";
public const string ScheduledDate = "scheduledDate";
public const string TargetWeek = "targetWeek";
public const string ScheduleWeekOnly = "scheduleWeekOnly";
public const string VendorId = "vendorId";
public const string ApptDate = "apptDate";
public const string ApptTime = "apptTime";
public const string DocStatus = "docStatus";
public const string RescheduleCount = "RescheduleCount";
private static readonly HashSet<string> DispatchFields = new(StringComparer.OrdinalIgnoreCase)
{
VendorId,
ApptDate,
ApptTime
};
private static readonly HashSet<string> AllEditable = new(StringComparer.OrdinalIgnoreCase)
{
WoNumber,
WorkOrderType,
SiteCode,
LifecycleStatus,
AssignTo,
DueDate,
ScheduledDate,
TargetWeek,
ScheduleWeekOnly,
VendorId,
ApptDate,
ApptTime,
DocStatus
};
public static bool IsEditable(string field) => AllEditable.Contains(field);
public static bool IsDispatchField(string field) => DispatchFields.Contains(field);
public static string ToAuditFieldName(string field) => field switch
{
WoNumber => "InternalWONumber",
WorkOrderType => "WorkOrderType",
SiteCode => "SiteCode",
LifecycleStatus => "LifecycleStatus",
AssignTo => "AssignTo",
DueDate => "DueDate",
ScheduledDate => "ScheduledDate",
TargetWeek => "TargetWeek",
ScheduleWeekOnly => "ScheduleWeekOnly",
VendorId => "VendorId",
ApptDate => "ApptDate",
ApptTime => "ApptTime",
DocStatus => "DocStatus",
_ => field
};
}
}