sync
This commit is contained in:
@ -0,0 +1,223 @@
|
||||
using FI.FIC.Extention;
|
||||
using Foresight.Fleet.Services.Asset;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace IronIntel.Contractor.FICExtDataTable
|
||||
{
|
||||
public class AssetTripsDataTable : FleetExtDataTable
|
||||
{
|
||||
public override string ID
|
||||
{
|
||||
get
|
||||
{
|
||||
return "32F84217-7F99-438E-9F06-6F238DDA3202";
|
||||
}
|
||||
}
|
||||
|
||||
public override string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Asset Trips DataTable";
|
||||
}
|
||||
}
|
||||
|
||||
public override string Description
|
||||
{
|
||||
get
|
||||
{
|
||||
return "Asset Trips DataTable";
|
||||
}
|
||||
}
|
||||
|
||||
public override string Version
|
||||
{
|
||||
get
|
||||
{
|
||||
return "1.0.0.0";
|
||||
}
|
||||
}
|
||||
|
||||
private static ExtDataTableParameter[] Params = new ExtDataTableParameter[] {
|
||||
new ExtDataTableParameter(){ID="C854AF5C-2928-43E1-B600-30F0318006FA",
|
||||
Name ="AssetId",DataType=DataTypes.Integer,DefaultValue=0 },
|
||||
new ExtDataTableParameter(){ ID="8573483C-3FD3-42E0-8C80-5DE543183140",
|
||||
Name ="StartDate",DataType=DataTypes.DateTime,DefaultValue=DateTime.Today.ToShortDateString()},
|
||||
new ExtDataTableParameter(){ ID="2C82E11F-2D97-426B-9925-FFB9BA3AF8D0",
|
||||
Name ="EndDate",DataType=DataTypes.DateTime,DefaultValue=DateTime.Today.ToShortDateString()},
|
||||
};
|
||||
|
||||
public override ExtDataTableParameter[] AvailableParameters
|
||||
{
|
||||
get
|
||||
{
|
||||
return Params;
|
||||
}
|
||||
}
|
||||
|
||||
public override DataTable GetData(int maxrows, KeyValuePair<string, object>[] parameters)
|
||||
{
|
||||
DataTable result = GetSchemaTable();
|
||||
string companyid = SystemParams.CompanyID;
|
||||
string assetidStr = "";
|
||||
string dtFromStr = "";
|
||||
string dtToStr = "";
|
||||
|
||||
if (parameters != null)
|
||||
{
|
||||
foreach (var kv in parameters)
|
||||
{
|
||||
if (kv.Key.Equals("AssetId", StringComparison.OrdinalIgnoreCase))
|
||||
assetidStr = kv.Value == null ? "" : kv.Value.ToString();
|
||||
else if (kv.Key.Equals("StartDate", StringComparison.OrdinalIgnoreCase))
|
||||
dtFromStr = kv.Value == null ? "" : kv.Value.ToString();
|
||||
else if (kv.Key.Equals("EndDate", StringComparison.OrdinalIgnoreCase))
|
||||
dtToStr = kv.Value == null ? "" : kv.Value.ToString();
|
||||
}
|
||||
}
|
||||
var user = GetCurrentUser();
|
||||
if (user == null || !user.Active)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
long assetid = 0;
|
||||
if (string.IsNullOrEmpty(assetidStr) || !long.TryParse(assetidStr, out assetid))
|
||||
return result;
|
||||
if (assetid <= 0)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
DateTime dtFrom = DateTime.Today;
|
||||
DateTime dtTo = DateTime.Now;
|
||||
if (!DateTime.TryParse(dtFromStr, out dtFrom) || !DateTime.TryParse(dtToStr, out dtTo))
|
||||
return result;
|
||||
dtTo = dtTo.Date.AddDays(1).AddSeconds(-1);
|
||||
|
||||
try
|
||||
{
|
||||
var aclient = FleetServiceClientHelper.CreateClient<AssetQueryClient>(companyid, string.Empty);
|
||||
var asset = aclient.GetAssetBasicInfoByID(companyid, assetid);
|
||||
if (asset == null)
|
||||
return result;
|
||||
|
||||
var client = FleetServiceClientHelper.CreateClient<AssetLocationQueryClient>(companyid, string.Empty);
|
||||
AssetTripInfo[] trips = client.GetAssetTripLins(companyid, assetid, dtFrom.Date, dtTo);
|
||||
foreach (AssetTripInfo trip in trips)
|
||||
{
|
||||
DataRow dr = result.NewRow();
|
||||
result.Rows.Add(dr);
|
||||
FillRowData(dr, trip, asset);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
WriteLog(GetType().FullName + ".GetData", ex.Message, ex.ToString());
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override DataTable GetSchemaTable()
|
||||
{
|
||||
DataTable result = new DataTable();
|
||||
result.Columns.Add("MachineID", typeof(long));
|
||||
result.Columns.Add("Name", typeof(string));
|
||||
result.Columns.Add("Name2", typeof(string));
|
||||
result.Columns.Add("VIN", typeof(string));
|
||||
result.Columns.Add("MakeID", typeof(int));
|
||||
result.Columns.Add("Make", typeof(string));
|
||||
result.Columns.Add("ModelID", typeof(int));
|
||||
result.Columns.Add("Model", typeof(string));
|
||||
result.Columns.Add("TypeID", typeof(int));
|
||||
result.Columns.Add("Type", typeof(string));
|
||||
|
||||
result.Columns.Add("TripOnLogId", typeof(long));
|
||||
result.Columns.Add("TripOnAsofTime", typeof(DateTime));
|
||||
result.Columns.Add("TripOnLocalAsofTime", typeof(DateTime));
|
||||
result.Columns.Add("TripOnLatitude", typeof(double));
|
||||
result.Columns.Add("TripOnLongitude", typeof(double));
|
||||
result.Columns.Add("TripOnOdometer", typeof(double));
|
||||
result.Columns.Add("TripOnOdometerUnit", typeof(string));
|
||||
result.Columns.Add("TripOnCity", typeof(string));
|
||||
result.Columns.Add("TripOnStreet", typeof(string));
|
||||
result.Columns.Add("TripOnState", typeof(string));
|
||||
|
||||
result.Columns.Add("TripOffLogId", typeof(long));
|
||||
result.Columns.Add("TripOffAsofTime", typeof(DateTime));
|
||||
result.Columns.Add("TripOffLocalAsofTime", typeof(DateTime));
|
||||
result.Columns.Add("TripOffLatitude", typeof(double));
|
||||
result.Columns.Add("TripOffLongitude", typeof(double));
|
||||
result.Columns.Add("TripOffOdometer", typeof(double));
|
||||
result.Columns.Add("TripOffOdometerUnit", typeof(string));
|
||||
result.Columns.Add("TripOffCity", typeof(string));
|
||||
result.Columns.Add("TripOffStreet", typeof(string));
|
||||
result.Columns.Add("TripOffState", typeof(string));
|
||||
|
||||
result.Columns.Add("TripOff", typeof(DateTime));
|
||||
result.Columns.Add("TripTime", typeof(TimeSpan));
|
||||
result.Columns.Add("TripDistance", typeof(double));
|
||||
result.Columns.Add("TripDistanceUnit", typeof(string));
|
||||
|
||||
result.TableName = "AssetTrips";
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private void FillRowData(DataRow dr, AssetTripInfo trip, AssetBasicInfo asset)
|
||||
{
|
||||
dr["MachineID"] = asset.ID;
|
||||
dr["Name"] = asset.Name;
|
||||
dr["Name2"] = asset.Name2;
|
||||
dr["VIN"] = asset.VIN;
|
||||
dr["MakeID"] = asset.MakeID;
|
||||
dr["Make"] = asset.MakeName;
|
||||
dr["ModelID"] = asset.ModelID;
|
||||
dr["Model"] = asset.ModelName;
|
||||
dr["TypeID"] = asset.TypeID;
|
||||
dr["Type"] = asset.TypeName;
|
||||
if (trip.TripOn != null)
|
||||
{
|
||||
dr["TripOnLogId"] = trip.TripOn.LogId;
|
||||
dr["TripOnAsofTime"] = trip.TripOn.AsofTime;
|
||||
dr["TripOnLocalAsofTime"] = trip.TripOn.LocalAsofTime;
|
||||
dr["TripOnLatitude"] = trip.TripOn.Latitude;
|
||||
dr["TripOnLongitude"] = trip.TripOn.Longitude;
|
||||
if (trip.TripOn.Odometer != null)
|
||||
{
|
||||
dr["TripOnOdometer"] = trip.TripOn.Odometer;
|
||||
dr["TripOnOdometerUnit"] = trip.TripOn.OdometerUnit;
|
||||
}
|
||||
dr["TripOnCity"] = trip.TripOn.City;
|
||||
dr["TripOnStreet"] = trip.TripOn.Street;
|
||||
dr["TripOnState"] = trip.TripOn.State;
|
||||
}
|
||||
if (trip.TripOff != null)
|
||||
{
|
||||
dr["TripOffLogId"] = trip.TripOff.LogId;
|
||||
dr["TripOffAsofTime"] = trip.TripOff.AsofTime;
|
||||
dr["TripOffLocalAsofTime"] = trip.TripOff.LocalAsofTime;
|
||||
dr["TripOffLatitude"] = trip.TripOff.Latitude;
|
||||
dr["TripOffLongitude"] = trip.TripOff.Longitude;
|
||||
if (trip.TripOff.Odometer != null)
|
||||
{
|
||||
dr["TripOffOdometer"] = trip.TripOff.Odometer;
|
||||
dr["TripOffOdometerUnit"] = trip.TripOff.OdometerUnit;
|
||||
}
|
||||
dr["TripOffCity"] = trip.TripOff.City;
|
||||
dr["TripOffStreet"] = trip.TripOff.Street;
|
||||
dr["TripOffState"] = trip.TripOff.State;
|
||||
}
|
||||
if (trip.TripTime != null)
|
||||
dr["TripTime"] = trip.TripTime;
|
||||
if (trip.TripDistance != null)
|
||||
dr["TripDistance"] = trip.TripDistance;
|
||||
dr["TripDistanceUnit"] = trip.TripDistanceUnit;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,67 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using FI.FIC.Extention;
|
||||
using Foresight.Fleet.Services.Asset;
|
||||
using Foresight.Fleet.Services.User;
|
||||
|
||||
namespace IronIntel.Contractor.FICExtDataTable
|
||||
{
|
||||
public abstract class FleetExtDataTable : IExtDataTable
|
||||
{
|
||||
protected FICContext Context { get; private set; }
|
||||
|
||||
protected string UserIID
|
||||
{
|
||||
get
|
||||
{
|
||||
return Context == null ? string.Empty : Context.UserIID;
|
||||
}
|
||||
}
|
||||
|
||||
public FleetExtDataTable()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public abstract string ID { get; }
|
||||
public abstract string Name { get; }
|
||||
public abstract string Description { get; }
|
||||
public abstract string Version { get; }
|
||||
public abstract ExtDataTableParameter[] AvailableParameters { get; }
|
||||
|
||||
public abstract DataTable GetData(int maxrows, KeyValuePair<string, object>[] parameters);
|
||||
public abstract DataTable GetSchemaTable();
|
||||
|
||||
public void Init(FICContext context)
|
||||
{
|
||||
Context = context;
|
||||
}
|
||||
|
||||
protected void WriteLog(string source, string message, string detail)
|
||||
{
|
||||
SystemParams.WriteLog("Error", "FleetExtDt", source, message, detail);
|
||||
}
|
||||
|
||||
protected UserInfo GetCurrentUser()
|
||||
{
|
||||
if (Context == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
try
|
||||
{
|
||||
UserQueryClient ic = FleetServiceClientHelper.CreateClient<UserQueryClient>();
|
||||
return ic.GetUserByIID(UserIID);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
WriteLog(GetType().FullName + ".GetLoginSession()", "extdt=" + ID + ";useriid=" + UserIID, ex.ToString());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user