Esempio n. 1
0
      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;
      }
Esempio n. 2
0
      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();
         }
      }
Esempio n. 3
0
 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;
 }