652 lines
20 KiB
C#
652 lines
20 KiB
C#
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
|
using Sarand.Net.Standard.Base.Bus;
|
|
using Sarand.Net.Standard.Base.Core;
|
|
using Sarand.Net.Standard.Base.Utils;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace Sarand.BusinessMgr.Net.Standard.Base.Bus
|
|
{
|
|
//=======================================================================
|
|
public abstract class SbmVehicle : SbmHierarchyItem
|
|
{
|
|
//-------------------------------------------------------------------
|
|
// Columns.
|
|
public enum Column
|
|
{
|
|
Pos,
|
|
Id,
|
|
// Vehicle Class.
|
|
VehicleClass_Id,
|
|
VehicleClass_MakeCode, VehicleClass_MakeDesc,
|
|
VehicleClass_Model,
|
|
VehicleClass_Derivative, VehicleClass_DescBrief,
|
|
VehicleClass_Type, VehicleClass_TypeDesc,
|
|
VehicleClass_CategoryCode, VehicleClass_CategoryDesc,
|
|
VehicleClass_FuelTypeDesc, VehicleClass_OdometerUnitsDesc,
|
|
VehicleClass_Seats,
|
|
VehicleClass_InsuranceCode, VehicleClass_InsuranceDesc,
|
|
VehicleClass_Notes,
|
|
// Identity.
|
|
RegNumber,
|
|
RegNumberPrev,
|
|
Vin,
|
|
// Model.
|
|
CapCode,
|
|
KeyNumber,
|
|
KeyLocation,
|
|
EngineNumber,
|
|
BuildOn,
|
|
FirstRegisterOn,
|
|
RegisterOn,
|
|
PurchaseOdo,
|
|
TachoCode,
|
|
TachoId,
|
|
LastServiceOdo,
|
|
LastServiceOn,
|
|
NextServiceOdo,
|
|
NextServiceOn,
|
|
MotOn,
|
|
MotNo,
|
|
NextTaxOn,
|
|
LatestOdo,
|
|
LatestOdoOn,
|
|
HpiAlert,
|
|
EventCount, // Derived values.
|
|
FeatureCount,
|
|
HpiCheckCount,
|
|
// Common properties.
|
|
Notes,
|
|
Flag,
|
|
Status,
|
|
Status_Ind,
|
|
Status_Desc,
|
|
CreateOn_Date,
|
|
UpdateOn_Date,
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
/// <summary>Properties other than common.</summary>
|
|
public class DataProperties
|
|
{
|
|
public String AssetSerial { get; set; } = "";
|
|
public SysId VehicleClassId { get; set; } = new SysId();
|
|
public String RegNumber { get; set; } = "";
|
|
public String Vin { get; set; } = "";
|
|
public String CapCode { get; set; } = "";
|
|
public String KeyNumber { get; set; } = "";
|
|
public String KeyLocation { get; set; } = "";
|
|
public String EngineNumber { get; set; } = "";
|
|
// Specification.
|
|
public Int16 EngineCapacity { get; set; } = 0;
|
|
public Int16 Seats { get; set; } = 0;
|
|
public Int16 Weight { get; set; } = 0;
|
|
public Int16 ManufactureYear { get; set; } = 0;
|
|
public DateTime BuildOn { get; set; } = DateTime.MinValue;
|
|
public DateTime FirstRegisterOn { get; set; } = DateTime.MinValue;
|
|
public DateTime RegisterOn { get; set; } = DateTime.MinValue;
|
|
public String RegNumberPrev { get; set; } = "";
|
|
public Int32 PurchaseOdo { get; set; } = 0;
|
|
public String TachoCode { get; set; } = "";
|
|
public String TachoId { get; set; } = "";
|
|
// Service.
|
|
public Int32 LastServiceOdo { get; set; } = 0;
|
|
public DateTime LastServiceOn { get; set; } = DateTime.MinValue;
|
|
public Int32 NextServiceOdo { get; set; } = 0;
|
|
public DateTime NextServiceOn { get; set; } = DateTime.MinValue;
|
|
public DateTime MotOn { get; set; } = DateTime.MinValue;
|
|
public String MotNo { get; set; } = "";
|
|
public DateTime NextTaxOn { get; set; } = DateTime.MinValue;
|
|
public Int32 LatestOdo { get; set; } = 0;
|
|
public DateTime LatestOdoOn { get; set; } = DateTime.MinValue;
|
|
}
|
|
|
|
// Data.
|
|
public new class Data : SacsHierarchyItem.Data
|
|
{
|
|
// Data members.
|
|
private readonly DataProperties data = new DataProperties();
|
|
// Construction.
|
|
public Data()
|
|
{
|
|
Status = DefaultStatus;
|
|
}
|
|
|
|
public String AssetSerial
|
|
{
|
|
get { return data.AssetSerial; }
|
|
set { CheckChanged(data.AssetSerial, value); data.AssetSerial = value; }
|
|
}
|
|
public SysId VehicleClassId
|
|
{
|
|
get { return data.VehicleClassId; }
|
|
set { CheckChanged(data.VehicleClassId, value); data.VehicleClassId = value; }
|
|
}
|
|
public String RegNumber
|
|
{
|
|
get { return data.RegNumber; }
|
|
set { CheckChanged(data.RegNumber, value); data.RegNumber = value; }
|
|
}
|
|
public String Vin
|
|
{
|
|
get { return data.Vin; }
|
|
set { CheckChanged(data.Vin, value); data.Vin = value; }
|
|
}
|
|
public String CapCode
|
|
{
|
|
get { return data.CapCode; }
|
|
set { CheckChanged(data.CapCode, value); data.CapCode = value; }
|
|
}
|
|
public String KeyNumber
|
|
{
|
|
get { return data.KeyNumber; }
|
|
set { CheckChanged(data.KeyNumber, value); data.KeyNumber = value; }
|
|
}
|
|
public String KeyLocation
|
|
{
|
|
get { return data.KeyLocation; }
|
|
set { CheckChanged(data.KeyLocation, value); data.KeyLocation = value; }
|
|
}
|
|
public String EngineNumber
|
|
{
|
|
get { return data.EngineNumber; }
|
|
set { CheckChanged(data.EngineNumber, value); data.EngineNumber = value; }
|
|
}
|
|
public short EngineCapacity
|
|
{
|
|
get { return data.EngineCapacity; }
|
|
set { CheckChanged(data.EngineCapacity, value); data.EngineCapacity = value; }
|
|
}
|
|
public short Seats
|
|
{
|
|
get { return data.Seats; }
|
|
set { CheckChanged(data.Seats, value); data.Seats = value; }
|
|
}
|
|
public short Weight
|
|
{
|
|
get { return data.Weight; }
|
|
set { CheckChanged(data.Weight, value); data.Weight = value; }
|
|
}
|
|
|
|
public short ManufactureYear
|
|
{
|
|
get { return data.ManufactureYear; }
|
|
set { CheckChanged(data.ManufactureYear, value); data.ManufactureYear = value; }
|
|
}
|
|
public DateTime BuildOn
|
|
{
|
|
get { return data.BuildOn; }
|
|
set { CheckChanged(data.BuildOn, value); data.BuildOn = value; }
|
|
}
|
|
public DateTime FirstRegisterOn
|
|
{
|
|
get { return data.FirstRegisterOn; }
|
|
set { CheckChanged(data.FirstRegisterOn, value); data.FirstRegisterOn = value; }
|
|
}
|
|
public DateTime RegisterOn
|
|
{
|
|
get { return data.RegisterOn; }
|
|
set { CheckChanged(data.RegisterOn, value); data.RegisterOn = value; }
|
|
}
|
|
public String RegNumberPrev
|
|
{
|
|
get { return data.RegNumberPrev; }
|
|
set { CheckChanged(data.RegNumberPrev, value); data.RegNumberPrev = value; }
|
|
}
|
|
public Int32 PurchaseOdo
|
|
{
|
|
get { return data.PurchaseOdo; }
|
|
set { CheckChanged(data.PurchaseOdo, value); data.PurchaseOdo = value; }
|
|
}
|
|
public String TachoCode
|
|
{
|
|
get { return data.TachoCode; }
|
|
set { CheckChanged(data.TachoCode, value); data.TachoCode = value; }
|
|
}
|
|
public String TachoId
|
|
{
|
|
get { return data.TachoId; }
|
|
set { CheckChanged(data.TachoId, value); data.TachoId = value; }
|
|
}
|
|
public Int32 LastServiceOdo
|
|
{
|
|
get { return data.LastServiceOdo; }
|
|
set { CheckChanged(data.LastServiceOdo, value); data.LastServiceOdo = value; }
|
|
}
|
|
public DateTime LastServiceOn
|
|
{
|
|
get { return data.LastServiceOn; }
|
|
set { CheckChanged(data.LastServiceOn, value); data.LastServiceOn = value; }
|
|
}
|
|
public Int32 NextServiceOdo
|
|
{
|
|
get { return data.NextServiceOdo; }
|
|
set { CheckChanged(data.NextServiceOdo, value); data.NextServiceOdo = value; }
|
|
}
|
|
|
|
public DateTime NextServiceOn
|
|
{
|
|
get { return data.NextServiceOn; }
|
|
set { CheckChanged(data.NextServiceOn, value); data.NextServiceOn = value; }
|
|
}
|
|
public DateTime MotOn
|
|
{
|
|
get { return data.MotOn; }
|
|
set { CheckChanged(data.MotOn, value); data.MotOn = value; }
|
|
}
|
|
public String MotNo
|
|
{
|
|
get { return data.MotNo; }
|
|
set { CheckChanged(data.MotNo, value); data.MotNo = value; }
|
|
}
|
|
public DateTime NextTaxOn
|
|
{
|
|
get { return data.NextTaxOn; }
|
|
set { CheckChanged(data.NextTaxOn, value); data.NextTaxOn = value; }
|
|
}
|
|
public Int32 LatestOdo
|
|
{
|
|
get { return data.LatestOdo; }
|
|
set { CheckChanged(data.LatestOdo, value); data.LatestOdo = value; }
|
|
}
|
|
public DateTime LatestOdoOn
|
|
{
|
|
get { return data.LatestOdoOn; }
|
|
set { CheckChanged(data.LatestOdoOn, value); data.LatestOdoOn = value; }
|
|
}
|
|
|
|
internal void PopulateFrom(Data data)
|
|
{
|
|
AssetSerial = data.AssetSerial;
|
|
VehicleClassId = data.VehicleClassId;
|
|
RegNumber = data.RegNumber;
|
|
Vin = data.Vin;
|
|
CapCode = data.CapCode;
|
|
KeyNumber = data.KeyNumber;
|
|
KeyLocation = data.KeyLocation;
|
|
EngineNumber = data.EngineNumber;
|
|
EngineCapacity = data.EngineCapacity;
|
|
Seats = data.Seats;
|
|
Weight = data.Weight;
|
|
ManufactureYear = data.ManufactureYear;
|
|
BuildOn = data.BuildOn;
|
|
FirstRegisterOn = data.FirstRegisterOn;
|
|
RegisterOn = data.RegisterOn;
|
|
RegNumberPrev = data.RegNumberPrev;
|
|
PurchaseOdo = data.PurchaseOdo;
|
|
TachoCode = data.TachoCode;
|
|
TachoId = data.TachoId;
|
|
LastServiceOdo = data.LastServiceOdo;
|
|
LastServiceOn = data.LastServiceOn;
|
|
NextServiceOdo = data.NextServiceOdo;
|
|
NextServiceOn = data.NextServiceOn;
|
|
MotOn = data.MotOn;
|
|
MotNo = data.MotNo;
|
|
NextTaxOn = data.NextTaxOn;
|
|
LatestOdo = data.LatestOdo;
|
|
LatestOdoOn = data.LatestOdoOn;
|
|
base.PopulateFrom(data);
|
|
}
|
|
public Data Clone()
|
|
{
|
|
Data data = new Data();
|
|
data.PopulateFrom(this);
|
|
return data;
|
|
}
|
|
}
|
|
|
|
public new class ErrField : SacsHierarchyItem.ErrField
|
|
{
|
|
// Identifies the field that has invalid data.
|
|
public ValidValue AssetSerial { get; set; } = ValidValue.Valid;
|
|
public ValidValue VehicleClassId { get; set; } = ValidValue.Valid;
|
|
public ValidValue RegNumber { get; set; } = ValidValue.Valid;
|
|
public ValidValue Vin { get; set; } = ValidValue.Valid;
|
|
public ValidValue CapCode { get; set; } = ValidValue.Valid;
|
|
public ValidValue KeyNumber { get; set; } = ValidValue.Valid;
|
|
public ValidValue KeyLocation { get; set; } = ValidValue.Valid;
|
|
public ValidValue EngineNumber { get; set; } = ValidValue.Valid;
|
|
public ValidValue EngineCapacity { get; set; } = ValidValue.Valid;
|
|
public ValidValue Seats { get; set; } = ValidValue.Valid;
|
|
public ValidValue Weight { get; set; } = ValidValue.Valid;
|
|
public ValidValue ManufactureYear { get; set; } = ValidValue.Valid;
|
|
public ValidValue BuildOn { get; set; } = ValidValue.Valid;
|
|
public ValidValue FirstRegisterOn { get; set; } = ValidValue.Valid;
|
|
public ValidValue RegisterOn { get; set; } = ValidValue.Valid;
|
|
public ValidValue RegNumberPrev { get; set; } = ValidValue.Valid;
|
|
public ValidValue PurchaseOdo { get; set; } = ValidValue.Valid;
|
|
public ValidValue TachoCode { get; set; } = ValidValue.Valid;
|
|
public ValidValue TachoId { get; set; } = ValidValue.Valid;
|
|
public ValidValue LastServiceOdo { get; set; } = ValidValue.Valid;
|
|
public ValidValue LastServiceOn { get; set; } = ValidValue.Valid;
|
|
public ValidValue NextServiceOdo { get; set; } = ValidValue.Valid;
|
|
public ValidValue NextServiceOn { get; set; } = ValidValue.Valid;
|
|
public ValidValue MotOn { get; set; } = ValidValue.Valid;
|
|
public ValidValue MotNo { get; set; } = ValidValue.Valid;
|
|
public ValidValue NextTaxOn { get; set; } = ValidValue.Valid;
|
|
public ValidValue LatestOdo { get; set; } = ValidValue.Valid;
|
|
public ValidValue LatestOdoOn { get; set; } = ValidValue.Valid;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Data members.
|
|
private readonly Data data = new Data();
|
|
public static readonly Byte Flag_HpiAlert = 0x01;
|
|
|
|
//-------------------------------------------------------------------
|
|
// Construction.
|
|
protected SbmVehicle(SysId id) : base(id)
|
|
{
|
|
base.SetData(data);
|
|
//Database = database;
|
|
Status = DefaultStatus;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Vehicle status.
|
|
private static readonly List<SaStatus> vehicleStatuses = new List<SaStatus>()
|
|
{
|
|
SaStatus.Active,
|
|
SaStatus.Cancelled,
|
|
};
|
|
public static SaStatus DefaultStatus { get { return SaStatus.Current; } }
|
|
public static List<SaStatus> ValidStatuses { get { return new List<SaStatus>(vehicleStatuses); } }
|
|
public static DataValue.TriStateType GetStatusTriState(SaStatus status)
|
|
{
|
|
switch (status)
|
|
{
|
|
case SaStatus.Active:
|
|
return DataValue.TriStateType.Green;
|
|
case SaStatus.Awaiting:
|
|
return DataValue.TriStateType.Amber;
|
|
case SaStatus.Disabled:
|
|
return DataValue.TriStateType.Red;
|
|
case SaStatus.Cancelled:
|
|
return DataValue.TriStateType.Red;
|
|
case SaStatus.Deleted:
|
|
return DataValue.TriStateType.Purple;
|
|
}
|
|
return DataValue.TriStateType.Unknown;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Utilities.
|
|
public SbmItemId GetItemId()
|
|
{
|
|
return new SbmItemId(Sbm.ItemType.Vehicle, Id);
|
|
}
|
|
|
|
public static bool IsValidRegistration(string value)
|
|
{
|
|
if (StringUtil.IsBlank(value)) return false;
|
|
if (!StringUtil.IsAlphaNumeric(value)) return false;
|
|
if (value.Length < 2 || value.Length > 7) return false; /* 'A1', 'ABC123', 'A123XYZ', 'AB12XYZ' */
|
|
// Registration must contain at least one letter and one number.
|
|
int letterCount = 0, numberCount = 0;
|
|
foreach (char c in value)
|
|
{
|
|
if (char.IsLetter(c)) letterCount++;
|
|
if (char.IsDigit(c)) numberCount++;
|
|
}
|
|
if (letterCount == 0 || numberCount == 0) return false;
|
|
// No more than 3 numbers and all together.
|
|
if (numberCount > 3) return false;
|
|
return true;
|
|
}
|
|
|
|
public static bool IsValidVin(string value)
|
|
{
|
|
if (StringUtil.IsBlank(value)) return false;
|
|
if (!StringUtil.IsAlphaNumeric(value)) return false;
|
|
if (value.Length != 17) return false;
|
|
// At least the first character must be an upper case letter.
|
|
if (!char.IsLetter(value[0])) return false;
|
|
// VIN must contain at least one letter and one number.
|
|
int letterCount = 0, numberCount = 0;
|
|
foreach (char c in value)
|
|
{
|
|
if (char.IsLetter(c)) letterCount++;
|
|
if (char.IsDigit(c)) numberCount++;
|
|
}
|
|
if (letterCount == 0 || numberCount == 0) return false;
|
|
// The last 5 characters must be numeric.
|
|
if (!StringUtil.IsNumeric(value.Right(5))) return false;
|
|
return true;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// Properties.
|
|
public Data GetData() { return data.Clone(); }
|
|
public void SetData(Data data)
|
|
{
|
|
// Properties that cannot be changed if previously specified.
|
|
if (SysId.IsValid(Id) && SysId.ToInt(Id) != SysId.ToInt(data.Id))
|
|
throw new NotSupportedException($"{SysUtil.Fn} Id cannot be changed");
|
|
// Populate individual properties to ensure that 'Changed' indicator is kept up to date.
|
|
this.data.PopulateFrom(data);
|
|
}
|
|
|
|
// Value ranges.
|
|
public static Int16 MaxEngineCapacity { get { return 9999; } }
|
|
public static Int16 MaxSeats { get { return 99; } }
|
|
public static Int16 MaxWeight { get { return 10000; } }
|
|
public static Int32 MaxOdo { get { return 1000000; } }
|
|
public static Int16 MinYear { get { return 1960; } }
|
|
public static Int16 MaxYear { get { return (Int16)(DateTime.Today.Year + 1); } }
|
|
public static DateTime MinDate { get { return new DateTime(MinYear, 1, 1); } }
|
|
public static DateTime MaxDate { get { return new DateTime(MaxYear, 12, 31); } }
|
|
|
|
//-------------------------------------------------------------------
|
|
// Attributes.
|
|
public String AssetSerial
|
|
{
|
|
get { return data.AssetSerial; }
|
|
set { data.AssetSerial = value; }
|
|
}
|
|
public SysId VehicleClassId
|
|
{
|
|
get { return data.VehicleClassId; }
|
|
set { data.VehicleClassId = value; }
|
|
}
|
|
public String RegNumber
|
|
{
|
|
get { return data.RegNumber; }
|
|
set { data.RegNumber = value; }
|
|
}
|
|
public String Vin
|
|
{
|
|
get { return data.Vin; }
|
|
set { data.Vin = value; }
|
|
}
|
|
public String CapCode
|
|
{
|
|
get { return data.CapCode; }
|
|
set { data.CapCode = value; }
|
|
}
|
|
public String KeyNumber
|
|
{
|
|
get { return data.KeyNumber; }
|
|
set { data.KeyNumber = value; }
|
|
}
|
|
public String KeyLocation
|
|
{
|
|
get { return data.KeyLocation; }
|
|
set { data.KeyLocation = value; }
|
|
}
|
|
public String EngineNumber
|
|
{
|
|
get { return data.EngineNumber; }
|
|
set { data.EngineNumber = value; }
|
|
}
|
|
public short EngineCapacity
|
|
{
|
|
get { return data.EngineCapacity; }
|
|
set { data.EngineCapacity = value; }
|
|
}
|
|
public short Seats
|
|
{
|
|
get { return data.Seats; }
|
|
set { data.Seats = value; }
|
|
}
|
|
public short Weight
|
|
{
|
|
get { return data.Weight; }
|
|
set { data.Weight = value; }
|
|
}
|
|
|
|
public short ManufactureYear
|
|
{
|
|
get { return data.ManufactureYear; }
|
|
set { data.ManufactureYear = value; }
|
|
}
|
|
public DateTime BuildOn
|
|
{
|
|
get { return data.BuildOn; }
|
|
set { data.BuildOn = value; }
|
|
}
|
|
public DateTime FirstRegisterOn
|
|
{
|
|
get { return data.FirstRegisterOn; }
|
|
set { data.FirstRegisterOn = value; }
|
|
}
|
|
public DateTime RegisterOn
|
|
{
|
|
get { return data.RegisterOn; }
|
|
set { data.RegisterOn = value; }
|
|
}
|
|
public String RegNumberPrev
|
|
{
|
|
get { return data.RegNumberPrev; }
|
|
set { data.RegNumberPrev = value; }
|
|
}
|
|
public Int32 PurchaseOdo
|
|
{
|
|
get { return data.PurchaseOdo; }
|
|
set { data.PurchaseOdo = value; }
|
|
}
|
|
public String TachoCode
|
|
{
|
|
get { return data.TachoCode; }
|
|
set { data.TachoCode = value; }
|
|
}
|
|
public String TachoId
|
|
{
|
|
get { return data.TachoId; }
|
|
set { data.TachoId = value; }
|
|
}
|
|
public Int32 LastServiceOdo
|
|
{
|
|
get { return data.LastServiceOdo; }
|
|
set { data.LastServiceOdo = value; }
|
|
}
|
|
public DateTime LastServiceOn
|
|
{
|
|
get { return data.LastServiceOn; }
|
|
set { data.LastServiceOn = value; }
|
|
}
|
|
public Int32 NextServiceOdo
|
|
{
|
|
get { return data.NextServiceOdo; }
|
|
set { data.NextServiceOdo = value; }
|
|
}
|
|
|
|
public DateTime NextServiceOn
|
|
{
|
|
get { return data.NextServiceOn; }
|
|
set { data.NextServiceOn = value; }
|
|
}
|
|
public DateTime MotOn
|
|
{
|
|
get { return data.MotOn; }
|
|
set { data.MotOn = value; }
|
|
}
|
|
public String MotNo
|
|
{
|
|
get { return data.MotNo; }
|
|
set { data.MotNo = value; }
|
|
}
|
|
public DateTime NextTaxOn
|
|
{
|
|
get { return data.NextTaxOn; }
|
|
set { data.NextTaxOn = value; }
|
|
}
|
|
public Int32 LatestOdo
|
|
{
|
|
get { return data.LatestOdo; }
|
|
set { data.LatestOdo = value; }
|
|
}
|
|
public DateTime LatestOdoOn
|
|
{
|
|
get { return data.LatestOdoOn; }
|
|
set { data.LatestOdoOn = value; }
|
|
}
|
|
//-------------------------------------------------------------------
|
|
// Flags.
|
|
public bool HpiAlert
|
|
{
|
|
get { return GetFlag(Flag_HpiAlert); }
|
|
set { SetFlag(Flag_HpiAlert, value); }
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// P a r a m s
|
|
//-------------------------------------------------------------------
|
|
/// <summary>Parameters - used to define the filters that should be applied to a List of Vehicles</summary>
|
|
// List parameters.
|
|
public enum StatusCat
|
|
{
|
|
Any,
|
|
ActiveOnly,
|
|
NotDeleted,
|
|
DeletedOnly
|
|
}
|
|
/// <summary>
|
|
/// Item list parameters.
|
|
/// </summary>
|
|
public new class Params : SacsHierarchyItem.Params
|
|
{
|
|
// List filtering.
|
|
public HashSet<SysId> IdsIncluded { get; } = new HashSet<SysId>();
|
|
public HashSet<SysId> IdsExcluded { get; } = new HashSet<SysId>();
|
|
// Vehicle.
|
|
public string Search { get; set; }
|
|
public SysId VehicleClassId { get; set; }
|
|
public SysId AssetCatIdInclude { get; set; }
|
|
public SysId AssetCatIdExclude { get; set; }
|
|
public SysId AssetProcessIdNext { get; set; }
|
|
public String RegNumber { get; set; }
|
|
public String RegNumberPartial { get; set; }
|
|
public String VinPartial { get; set; }
|
|
public String MakeCode { get; set; }
|
|
public String ClassDescPartial { get; set; }
|
|
/// <summary>Vehicle status.</summary>
|
|
public StatusCat StatusCat { get; set; } = StatusCat.Any;
|
|
// Linked table aliases.
|
|
public string TableAlias_VehicleClasss { get; set; }
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
|
|
//=======================================================================
|
|
// V e h i c l e L i s t
|
|
//=======================================================================
|
|
public static class SbmVehicleList
|
|
{
|
|
/// <summary>Check whether item exists/locate in list with specified Id.</summary>
|
|
public static bool Find(this List<SbmVehicle> values, SbmVehicle vehicle)
|
|
{
|
|
if (vehicle == null) return false;
|
|
return values.Any(item => item == vehicle);
|
|
}
|
|
public static bool FindById(this List<SbmVehicle> values, SysId id)
|
|
{
|
|
if (!SysId.IsValid(id)) return false;
|
|
return values.Any(item => item.Id.Equals(id));
|
|
}
|
|
}
|
|
|
|
//=======================================================================
|
|
}
|