internal static DbVehicleInfo VehicleSave(DbConnector dbConn, VehicleInfo vi) { var dbvi = new DbVehicleInfo { VehicleInfo = vi.Clone() }; dbvi.VehicleInfo.DataSource = DataSources.Backend; if (!dbvi.VehicleInfo.BatteryId.IsEmpty) { var dbbi = dbConn.ExecuteBpl(new BatteryGetById { BatteryId = dbvi.VehicleInfo.BatteryId }); if (dbbi != null) { dbvi.BatteryKey = dbbi.BatteryKey; } else { Log.Warn("Battery with Id {0} not found in DB. Cleared.", dbvi.VehicleInfo.BatteryId.LocalId.ToString()); dbvi.VehicleInfo.BatteryId = BplIdentity.Empty; } } var exVehicle = dbConn.ExecuteBpl(new VehicleGetById { VehicleId = dbvi.VehicleInfo.VehicleId }); if (exVehicle != null) { // TK: we are using OpCo settings from SD (periodic) dbvi.VehicleInfo.Operator = exVehicle.VehicleInfo.Operator; dbvi.VehicleKey = exVehicle.VehicleKey; if ((exVehicle.VehicleInfo.DataSource == DataSources.Backend) || (OscarServer.UseBackendMasterData)) { dbConn.ExecuteBpl(new VehicleUpdate { i = dbvi }); } } else { dbvi = null; } return dbvi; }
private void _onSuccess(VehicleInfo o) { Log.Trace("Reply recieved: {0}", o); if (o == null) { Log.Warn("Empty reply recieved for GetVehicleInfo."); Reply(null); return; } Log.Trace("Add vehicle {0} to DB", o.VehicleId); using (var dbConn = DatabaseManager.DbConn()) { dbConn.BeginTransaction(); BackendHelpers.VehicleSave(dbConn, o); dbConn.CommitTransaction(); } }
private VehicleInfo _getVehicleInfo(S.VehicleInfoResponse r) { if (r == null) { Log.Warn("Empty vehicle info result from Tibco"); return null; } var v = r.Vehicle; var result = new VehicleInfo { VehicleId = v.Id, //TK: Here we have no way to know what OpCo the vehicle related to, set BPIL Operator = Operators.BPIL, //EquipmentStatus = _getEqStatus(v.equipmentStatus), Type = v.Type, VehicleSN = v.SerialNumber, VehicleVIN = v.VIN, LicensePlate = v.LicensePlate, ModelColor = v.Color, ModelName = v.ModelName, ModelYear = v.ModelYear, }; return result; }