using Foresight; using Foresight.Fleet.Services.Asset; using IronIntel.Services.Common; using IronIntel.Services.MapView; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IronIntel.Contractor.MapView { public class MachineViewItem { public string VIN { get; set; } public long ID { get; set; } public string Name { get; set; } public string Name2 { get; set; } public string IconUrl { get; set; } public string EmptyIconUrl { get; set; }//不包含机器图标 public string MachineType { get; set; } public string Make { get; set; } public string Model { get; set; } public int MakeYear { get; set; } private double _EngineHours; public double EngineHours { get { return _EngineHours; } set { value = value > 0 ? value : 0; _EngineHours = Math.Round(value, 2); } } public DateTime EngineHoursDate { get; set; } public int TypeID { get; set; } public string AlertTip { get; set; } public bool OnSite { get; set; } public string JobSiteName { get; set; }//当前所在的JobSiteName public double DistanceFromSite { get; set; }//机器与Jobsite之间的距离 public bool WithinSite { get; set; }//机器是否在JobSite多边形范围内 public LocationViewItem Location { get; set; } private double _Odometer; public double Odometer { get { return _Odometer; } set { value = value > 0 ? value : 0; _Odometer = Math.Round(value, 2); } } public string OdometerUOM { get; set; } public int Onroad { get; set; } public string IconFileName { get; set; } public string MoveStatus { get; set; } public int Directionalheading { get; set; } public int MapAlertLayerPriority { get; set; } public Int64 GpsDeviceID { get; set; } //空 -1 public string AssetGroupNames { get; set; } public string ShowName { get { //Name取值顺序为Name2,Name,VIN,ID用于前端显示 string name = Name2; if (string.IsNullOrWhiteSpace(name)) name = Name; if (string.IsNullOrWhiteSpace(name)) name = VIN; if (string.IsNullOrWhiteSpace(name)) name = ID.ToString(); return name; } }//由于地图显示及排序的名称 public string EngineHoursDateText { get { if (EngineHoursDate != DateTime.MinValue) { return EngineHoursDate.ToString(); } return ""; } } } public class JobSiteViewItem { public Int64 ID { get; set; } public string Name { get; set; } public string[] Types { get; set; } public double Latitude { get; set; } public double Longitude { get; set; } public double Radius { get; set; } public string Radius_UOM { get; set; } public string ContractorID { get; set; } public string ColorString { get; set; } public IIColor Color { get; set; } public string Notes { get; set; } public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public PostionItem[] Polygon { get; set; } public Int64 BaseOnMachineID { get; set; } public string Code { get; set; } public long[] Assets { get; set; } public bool IsDeleted { get; set; } public string strStartDate { get { if (StartDate == DateTime.MinValue) { return ""; } else { return StartDate.ToShortDateString(); } } } public string strEndDate { get { if (EndDate == DateTime.MinValue) { return ""; } else { return EndDate.ToShortDateString(); } } } public MachineViewItem[] Machines { get; set; } } public class AssetGroupViewItem { public string ID { get; set; } public string Name { get; set; } public long[] Assets { get; set; } } public class CompanyLocationViewItem { public int ID { get; set; } public string CompanyID { get; set; } public double Latitude { get; set; } public double Longitude { get; set; } public string LocationName { get; set; } public string Notes { get; set; } public string IconUrl { get; set; } } public class MapAlertViewDefinitionItem { public string ID { get; set; } public string Name { get; set; } public MapAlertLayerDefinitionItem[] Layers { get; set; } public List LookupDataSources { get; set; } } public class LookupDataSourceDataItem { public string ID { get; set; } private List> _Items = new List>(); public List> Items { get { return _Items; } } public string Name { get; set; } } public class MapAlertLayerDefinitionItem { public string ID { get; set; } public string Title { get; set; } public string Description { get; set; } public string IconColor { get; set; } public string AlertLayerType { get; set; }//Primary/Secondary public string LegendUrl { get; set; } public DbQueryParameterItem[] CriteriaSQLParameters { get; set; } public DbQueryParameterItem[] AlertSQLParameters { get; set; } public AlertLayerPivotViewItem[] Pivots { get; set; } } public class DbQueryParameterItem { public string ID { get; set; } public string Name { get; set; } public string Caption { get; set; } public string Description { get; set; } public DataTypes DataType { get; set; } public string DefaultValue { get; set; } public string ParameterValue { get; set; } public QueryParameterDisplayStyles DisplayStyle { get; set; } public string LookupDatasourceID { get; set; } public bool DisplayCaptionField { get; set; }//当参数显示为dropdown时,指示显示Key或者text public bool IsField { get; set; }//表明该参数名是一个数据库参数或是结果集的字段,如果是结果集的字段,则该定义必须要与lookupdatasource关联。 public bool IsAllAllowed { get; set; } public bool MutipleSelect { get; set; } } public class QueryParameterSource { public string ID { get; set; } public string Name { get; set; } } public class LocationViewItem { public double Latitude { get; set; } public double Longitude { get; set; } public DateTime LocationTime { get; set; } public string LocationTimeText { get { if (LocationTime != DateTime.MinValue) { return LocationTime.ToString(); } return ""; } } public double Speed { get; set; } = -1; public string SpeedUnit { get; set; } public double PostedSpeed { get; set; } = -1; public string PostedSpeedUnit { get; set; } public string Street { get; set; } = string.Empty; public string IconURL { get; set; } = string.Empty; public List> SmartWitnessVideoUrl { get; set; } public SpeedingBehaviors SpeedingBehavior { get; set; } public HarshDrivingEvents HarshDringEvent { get; set; } } public class MachineLocationHistoryViewItem { public MachineViewItem Machine { get; set; } public LocationViewItem[] Locations { get; set; } } public class MachineTypeItem { public int ID { get; set; } public string Name { get; set; } } /// /// 供JobSite选中的Mahcine /// public class AvailableMachines { public MachineViewItem[] Assigned { get; set; } public MachineViewItem[] Unassigned { get; set; } } public struct PostionItem { public double Latitude; public double Longitude; public PostionItem(double latitude, double longitude) { Latitude = latitude; Longitude = longitude; } } public class ShapeFileItem { public long ID { get; set; } public string Name { get; set; } public string Notes { get; set; } } }