// TODO improve & remove public void Housekeeping(bool mayDelete, bool calculateAutoPedLight) { #if DEBUGHK bool debug = GlobalConfig.Instance.Debug.Switches[7] && GlobalConfig.Instance.Debug.NodeId == NodeId; #endif // we intentionally never delete vehicle types (because we may want to retain traffic light states if a segment is upgraded or replaced) ICustomSegmentLight mainLight = MainSegmentLight; ushort nodeId = NodeId; HashSet <ExtVehicleType> setupLights = new HashSet <ExtVehicleType>(); IDictionary <byte, ExtVehicleType> allAllowedTypes = Constants.ManagerFactory.VehicleRestrictionsManager.GetAllowedVehicleTypesAsDict(SegmentId, nodeId, VehicleRestrictionsMode.Restricted); // TODO improve ExtVehicleType allAllowedMask = Constants.ManagerFactory.VehicleRestrictionsManager.GetAllowedVehicleTypes(SegmentId, nodeId, VehicleRestrictionsMode.Restricted); SeparateVehicleTypes = ExtVehicleType.None; #if DEBUGHK if (debug) { Log._Debug($"CustomSegmentLights.Housekeeping({mayDelete}, {calculateAutoPedLight}): housekeeping started @ seg. {SegmentId}, node {nodeId}, allAllowedTypes={allAllowedTypes.DictionaryToString()}, allAllowedMask={allAllowedMask}"); } #endif //bool addPedestrianLight = false; uint separateLanes = 0; int defaultLanes = 0; NetInfo segmentInfo = null; Constants.ServiceFactory.NetService.ProcessSegment(SegmentId, delegate(ushort segId, ref NetSegment segment) { VehicleTypeByLaneIndex = new ExtVehicleType?[segment.Info.m_lanes.Length]; segmentInfo = segment.Info; return(true); }); HashSet <byte> laneIndicesWithoutSeparateLights = new HashSet <byte>(allAllowedTypes.Keys); // TODO improve // check if separate traffic lights are required bool separateLightsRequired = false; foreach (KeyValuePair <byte, ExtVehicleType> e in allAllowedTypes) { if (e.Value != allAllowedMask) { separateLightsRequired = true; break; } } // set up vehicle-separated traffic lights if (separateLightsRequired) { foreach (KeyValuePair <byte, ExtVehicleType> e in allAllowedTypes) { byte laneIndex = e.Key; NetInfo.Lane laneInfo = segmentInfo.m_lanes[laneIndex]; ExtVehicleType allowedTypes = e.Value; ExtVehicleType defaultMask = Constants.ManagerFactory.VehicleRestrictionsManager.GetDefaultAllowedVehicleTypes(SegmentId, segmentInfo, laneIndex, laneInfo, VehicleRestrictionsMode.Unrestricted); #if DEBUGHK if (debug) { Log._Debug($"CustomSegmentLights.Housekeeping({mayDelete}, {calculateAutoPedLight}): housekeeping @ seg. {SegmentId}, node {nodeId}: Processing lane {laneIndex} with allowedTypes={allowedTypes}, defaultMask={defaultMask}"); } #endif if (laneInfo.m_vehicleType == VehicleInfo.VehicleType.Car && allowedTypes == defaultMask) { #if DEBUGHK if (debug) { Log._Debug($"CustomSegmentLights.Housekeeping({mayDelete}, {calculateAutoPedLight}): housekeeping @ seg. {SegmentId}, node {nodeId}, lane {laneIndex}: Allowed types equal default mask. Ignoring lane."); } #endif // no vehicle restrictions applied, generic lights are handled further below ++defaultLanes; continue; } ExtVehicleType mask = allowedTypes & ~ExtVehicleType.Emergency; #if DEBUGHK if (debug) { Log._Debug($"CustomSegmentLights.Housekeeping({mayDelete}, {calculateAutoPedLight}): housekeeping @ seg. {SegmentId}, node {nodeId}, lane {laneIndex}: Trying to add {mask} light"); } #endif ICustomSegmentLight segmentLight; if (!CustomLights.TryGetValue(mask, out segmentLight)) { // add a new light segmentLight = new CustomSegmentLight(this, RoadBaseAI.TrafficLightState.Red); if (mainLight != null) { segmentLight.CurrentMode = mainLight.CurrentMode; segmentLight.SetStates(mainLight.LightMain, mainLight.LightLeft, mainLight.LightRight, false); } #if DEBUGHK if (debug) { Log._Debug($"CustomSegmentLights.Housekeeping({mayDelete}, {calculateAutoPedLight}): housekeeping @ seg. {SegmentId}, node {nodeId}, lane {laneIndex}: Light for mask {mask} does not exist. Created new light: {segmentLight} (mainLight: {mainLight})"); } #endif CustomLights.Add(mask, segmentLight); VehicleTypes.AddFirst(mask); } mainVehicleType = mask; VehicleTypeByLaneIndex[laneIndex] = mask; laneIndicesWithoutSeparateLights.Remove(laneIndex); ++separateLanes; //addPedestrianLight = true; setupLights.Add(mask); SeparateVehicleTypes |= mask; #if DEBUGHK if (debug) { Log._Debug($"CustomSegmentLights.Housekeeping({mayDelete}, {calculateAutoPedLight}): housekeeping @ seg. {SegmentId}, node {nodeId}: Finished processing lane {laneIndex}: mainVehicleType={mainVehicleType}, VehicleTypeByLaneIndex={VehicleTypeByLaneIndex.ArrayToString()}, laneIndicesWithoutSeparateLights={laneIndicesWithoutSeparateLights.CollectionToString()}, numLights={separateLanes}, SeparateVehicleTypes={SeparateVehicleTypes}"); } #endif } } if (separateLanes == 0 || defaultLanes > 0) { #if DEBUGHK if (debug) { Log._Debug($"CustomSegmentLights.Housekeeping({mayDelete}, {calculateAutoPedLight}): housekeeping @ seg. {SegmentId}, node {nodeId}: Adding default main vehicle light: {DEFAULT_MAIN_VEHICLETYPE}"); } #endif // generic traffic lights ICustomSegmentLight defaultSegmentLight; if (!CustomLights.TryGetValue(DEFAULT_MAIN_VEHICLETYPE, out defaultSegmentLight)) { defaultSegmentLight = new CustomSegmentLight(this, RoadBaseAI.TrafficLightState.Red); if (mainLight != null) { defaultSegmentLight.CurrentMode = mainLight.CurrentMode; defaultSegmentLight.SetStates(mainLight.LightMain, mainLight.LightLeft, mainLight.LightRight, false); } CustomLights.Add(DEFAULT_MAIN_VEHICLETYPE, defaultSegmentLight); VehicleTypes.AddFirst(DEFAULT_MAIN_VEHICLETYPE); } mainVehicleType = DEFAULT_MAIN_VEHICLETYPE; setupLights.Add(DEFAULT_MAIN_VEHICLETYPE); foreach (byte laneIndex in laneIndicesWithoutSeparateLights) { VehicleTypeByLaneIndex[laneIndex] = ExtVehicleType.None; } #if DEBUGHK if (debug) { Log._Debug($"CustomSegmentLights.Housekeeping({mayDelete}, {calculateAutoPedLight}): housekeeping @ seg. {SegmentId}, node {nodeId}: Added default main vehicle light: {defaultSegmentLight}"); } #endif //addPedestrianLight = true; } else { //addPedestrianLight = allAllowedMask == ExtVehicleType.None || (allAllowedMask & ~ExtVehicleType.RailVehicle) != ExtVehicleType.None; } #if DEBUGHK if (debug) { Log._Debug($"CustomSegmentLights.Housekeeping({mayDelete}, {calculateAutoPedLight}): housekeeping @ seg. {SegmentId}, node {nodeId}: Created all necessary lights. VehicleTypeByLaneIndex={VehicleTypeByLaneIndex.ArrayToString()}, CustomLights={CustomLights.DictionaryToString()}"); } #endif if (mayDelete) { // delete traffic lights for non-existing vehicle-separated configurations HashSet <ExtVehicleType> vehicleTypesToDelete = new HashSet <ExtVehicleType>(); foreach (KeyValuePair <ExtVehicleType, ICustomSegmentLight> e in CustomLights) { /*if (e.Key == DEFAULT_MAIN_VEHICLETYPE) { * continue; * }*/ if (!setupLights.Contains(e.Key)) { vehicleTypesToDelete.Add(e.Key); } } #if DEBUGHK if (debug) { Log._Debug($"CustomSegmentLights.Housekeeping({mayDelete}, {calculateAutoPedLight}): housekeeping @ seg. {SegmentId}, node {nodeId}: Going to delete unnecessary lights now: vehicleTypesToDelete={vehicleTypesToDelete.CollectionToString()}"); } #endif foreach (ExtVehicleType vehicleType in vehicleTypesToDelete) { CustomLights.Remove(vehicleType); VehicleTypes.Remove(vehicleType); } } if (CustomLights.ContainsKey(DEFAULT_MAIN_VEHICLETYPE) && VehicleTypes.First.Value != DEFAULT_MAIN_VEHICLETYPE) { VehicleTypes.Remove(DEFAULT_MAIN_VEHICLETYPE); VehicleTypes.AddFirst(DEFAULT_MAIN_VEHICLETYPE); } //if (addPedestrianLight) { #if DEBUGHK if (debug) { Log._Debug($"CustomSegmentLights.Housekeeping({mayDelete}, {calculateAutoPedLight}): housekeeping @ seg. {SegmentId}, node {nodeId}: adding pedestrian light"); } #endif if (InternalPedestrianLightState == null) { InternalPedestrianLightState = RoadBaseAI.TrafficLightState.Red; } /*} else { * InternalPedestrianLightState = null; * }*/ OnChange(calculateAutoPedLight); #if DEBUGHK if (debug) { Log._Debug($"CustomSegmentLights.Housekeeping({mayDelete}, {calculateAutoPedLight}): housekeeping @ seg. {SegmentId}, node {nodeId}: Housekeeping complete. VehicleTypeByLaneIndex={VehicleTypeByLaneIndex.ArrayToString()} CustomLights={CustomLights.DictionaryToString()}"); } #endif }
public VehicleType GetVehicleType(int id) { return(VehicleTypes.SingleOrDefault(q => q.Id == id)); }
/// <summary> /// Default Constructor /// </summary> public BigTruck() { // http://wiki.openstreetmap.org/wiki/Key:hgv#Land-based_transportation VehicleTypes.Add("hgv"); }
internal void housekeeping(bool mayDelete, RoadBaseAI.TrafficLightState mainState = RoadBaseAI.TrafficLightState.Red, RoadBaseAI.TrafficLightState leftState = RoadBaseAI.TrafficLightState.Red, RoadBaseAI.TrafficLightState rightState = RoadBaseAI.TrafficLightState.Red, RoadBaseAI.TrafficLightState pedState = RoadBaseAI.TrafficLightState.Red) { // we intentionally never delete vehicle types (because we may want to retain traffic light states if a segment is upgraded or replaced) HashSet <ExtVehicleType> setupLights = new HashSet <ExtVehicleType>(); HashSet <ExtVehicleType> allAllowedTypes = VehicleRestrictionsManager.GetAllowedVehicleTypesAsSet(segmentId, nodeId); ExtVehicleType allAllowedMask = VehicleRestrictionsManager.GetAllowedVehicleTypes(segmentId, nodeId); SeparateVehicleTypes = ExtVehicleType.None; #if DEBUGHK Log._Debug($"CustomSegmentLights: housekeeping @ seg. {segmentId}, node {nodeId}, allAllowedTypes={string.Join(", ", allAllowedTypes.Select(x => x.ToString()).ToArray())}"); #endif bool addPedestrianLight = false; uint numLights = 0; foreach (ExtVehicleType allowedTypes in allAllowedTypes) { foreach (ExtVehicleType mask in singleLaneVehicleTypes) { if (setupLights.Contains(mask)) { continue; } if ((allowedTypes & mask) != ExtVehicleType.None && (allowedTypes & ~(mask | ExtVehicleType.Emergency)) == ExtVehicleType.None) { #if DEBUGHK Log._Debug($"CustomSegmentLights: housekeeping @ seg. {segmentId}, node {nodeId}: adding {mask} light"); #endif if (!CustomLights.ContainsKey(mask)) { CustomLights.Add(mask, new TrafficLight.CustomSegmentLight(this, nodeId, segmentId, mainState, leftState, rightState)); VehicleTypes.AddFirst(mask); } ++numLights; addPedestrianLight = true; autoPedestrianVehicleType = mask; mainSegmentLight = CustomLights[mask]; setupLights.Add(mask); SeparateVehicleTypes |= mask; break; } } } if (allAllowedTypes.Count > numLights) { #if DEBUGHK Log._Debug($"CustomSegmentLights: housekeeping @ seg. {segmentId}, node {nodeId}: adding main vehicle light: {mainVehicleType}"); #endif // traffic lights for cars if (!CustomLights.ContainsKey(mainVehicleType)) { CustomLights.Add(mainVehicleType, new TrafficLight.CustomSegmentLight(this, nodeId, segmentId, mainState, leftState, rightState)); VehicleTypes.AddFirst(mainVehicleType); } autoPedestrianVehicleType = mainVehicleType; mainSegmentLight = CustomLights[mainVehicleType]; addPedestrianLight = allAllowedMask == ExtVehicleType.None || (allAllowedMask & ~ExtVehicleType.RailVehicle) != ExtVehicleType.None; } else { addPedestrianLight = true; } #if DEBUGHK if (addPedestrianLight) { Log._Debug($"CustomSegmentLights: housekeeping @ seg. {segmentId}, node {nodeId}: adding ped. light"); } #endif if (mayDelete) { // delete traffic lights for non-existing configurations HashSet <ExtVehicleType> vehicleTypesToDelete = new HashSet <ExtVehicleType>(); foreach (KeyValuePair <ExtVehicleType, CustomSegmentLight> e in CustomLights) { if (e.Key == mainVehicleType) { continue; } if (!setupLights.Contains(e.Key)) { vehicleTypesToDelete.Add(e.Key); } } foreach (ExtVehicleType vehicleType in vehicleTypesToDelete) { #if DEBUGHK Log._Debug($"Deleting traffic light for {vehicleType} at segment {segmentId}, node {nodeId}"); #endif CustomLights.Remove(vehicleType); VehicleTypes.Remove(vehicleType); } } if (CustomLights.ContainsKey(mainVehicleType) && VehicleTypes.First.Value != mainVehicleType) { VehicleTypes.Remove(mainVehicleType); VehicleTypes.AddFirst(mainVehicleType); } if (addPedestrianLight) { #if DEBUGHK Log._Debug($"CustomSegmentLights: housekeeping @ seg. {segmentId}, node {nodeId}: adding pedestrian light"); #endif if (pedestrianLightState == null) { pedestrianLightState = pedState; } } else { pedestrianLightState = null; } }
// TODO improve & remove public void Housekeeping(bool mayDelete, bool calculateAutoPedLight) { // we intentionally never delete vehicle types (because we may want to retain traffic light states if a segment is upgraded or replaced) ICustomSegmentLight mainLight = MainSegmentLight; ushort nodeId = NodeId; HashSet <ExtVehicleType> setupLights = new HashSet <ExtVehicleType>(); // TODO improve IDictionary <byte, ExtVehicleType> allAllowedTypes = Constants.ManagerFactory.VehicleRestrictionsManager.GetAllowedVehicleTypesAsDict(SegmentId, nodeId, VehicleRestrictionsMode.Restricted); // TODO improve ExtVehicleType allAllowedMask = Constants.ManagerFactory.VehicleRestrictionsManager.GetAllowedVehicleTypes(SegmentId, nodeId, VehicleRestrictionsMode.Restricted); SeparateVehicleTypes = ExtVehicleType.None; #if DEBUGHK Log._Debug($"CustomSegmentLights: housekeeping @ seg. {SegmentId}, node {nodeId}, allAllowedTypes={string.Join(", ", allAllowedTypes.Select(x => x.ToString()).ToArray())}, allAllowedMask={allAllowedMask}"); #endif bool addPedestrianLight = false; uint numLights = 0; Constants.ServiceFactory.NetService.ProcessSegment(SegmentId, delegate(ushort segId, ref NetSegment segment) { VehicleTypeByLaneIndex = new ExtVehicleType?[segment.Info.m_lanes.Length]; return(true); }); HashSet <byte> laneIndicesWithoutSeparateLights = new HashSet <byte>(allAllowedTypes.Keys); // TODO improve foreach (KeyValuePair <byte, ExtVehicleType> e in allAllowedTypes) { byte laneIndex = e.Key; ExtVehicleType allowedTypes = e.Value; foreach (ExtVehicleType mask in SINGLE_LANE_VEHICLETYPES) { if (setupLights.Contains(mask)) { ++numLights; break; } if ((allowedTypes & mask) != ExtVehicleType.None && (allowedTypes & ~(mask | ExtVehicleType.Emergency)) == ExtVehicleType.None) { #if DEBUGHK Log._Debug($"CustomSegmentLights: housekeeping @ seg. {SegmentId}, node {nodeId}: adding {mask} light"); #endif ICustomSegmentLight segmentLight; if (!CustomLights.TryGetValue(mask, out segmentLight)) { segmentLight = new CustomSegmentLight(this, RoadBaseAI.TrafficLightState.Red); if (mainLight != null) { segmentLight.CurrentMode = mainLight.CurrentMode; segmentLight.SetStates(mainLight.LightMain, mainLight.LightLeft, mainLight.LightRight, false); } CustomLights.Add(mask, segmentLight); VehicleTypes.AddFirst(mask); } mainVehicleType = mask; VehicleTypeByLaneIndex[laneIndex] = mask; laneIndicesWithoutSeparateLights.Remove(laneIndex); ++numLights; addPedestrianLight = true; setupLights.Add(mask); SeparateVehicleTypes |= mask; break; } } } if (allAllowedTypes.Count > numLights) { #if DEBUGHK Log._Debug($"CustomSegmentLights: housekeeping @ seg. {SegmentId}, node {nodeId}: adding default main vehicle light: {DEFAULT_MAIN_VEHICLETYPE}"); #endif // traffic lights for cars ICustomSegmentLight defaultSegmentLight; if (!CustomLights.TryGetValue(DEFAULT_MAIN_VEHICLETYPE, out defaultSegmentLight)) { defaultSegmentLight = new CustomSegmentLight(this, RoadBaseAI.TrafficLightState.Red); if (mainLight != null) { defaultSegmentLight.CurrentMode = mainLight.CurrentMode; defaultSegmentLight.SetStates(mainLight.LightMain, mainLight.LightLeft, mainLight.LightRight, false); } CustomLights.Add(DEFAULT_MAIN_VEHICLETYPE, defaultSegmentLight); VehicleTypes.AddFirst(DEFAULT_MAIN_VEHICLETYPE); } mainVehicleType = DEFAULT_MAIN_VEHICLETYPE; foreach (byte laneIndex in laneIndicesWithoutSeparateLights) { VehicleTypeByLaneIndex[laneIndex] = ExtVehicleType.None; } addPedestrianLight = true; } else { addPedestrianLight = allAllowedMask == ExtVehicleType.None || (allAllowedMask & ~ExtVehicleType.RailVehicle) != ExtVehicleType.None; } if (mayDelete) { // delete traffic lights for non-existing configurations HashSet <ExtVehicleType> vehicleTypesToDelete = new HashSet <ExtVehicleType>(); foreach (KeyValuePair <ExtVehicleType, ICustomSegmentLight> e in CustomLights) { if (e.Key == DEFAULT_MAIN_VEHICLETYPE) { continue; } if (!setupLights.Contains(e.Key)) { vehicleTypesToDelete.Add(e.Key); } } foreach (ExtVehicleType vehicleType in vehicleTypesToDelete) { #if DEBUGHK Log._Debug($"Deleting traffic light for {vehicleType} at segment {SegmentId}, node {nodeId}"); #endif CustomLights.Remove(vehicleType); VehicleTypes.Remove(vehicleType); } } if (CustomLights.ContainsKey(DEFAULT_MAIN_VEHICLETYPE) && VehicleTypes.First.Value != DEFAULT_MAIN_VEHICLETYPE) { VehicleTypes.Remove(DEFAULT_MAIN_VEHICLETYPE); VehicleTypes.AddFirst(DEFAULT_MAIN_VEHICLETYPE); } if (addPedestrianLight) { #if DEBUGHK Log._Debug($"CustomSegmentLights: housekeeping @ seg. {SegmentId}, node {nodeId}: adding pedestrian light"); #endif if (InternalPedestrianLightState == null) { InternalPedestrianLightState = RoadBaseAI.TrafficLightState.Red; } } else { InternalPedestrianLightState = null; } OnChange(calculateAutoPedLight); #if DEBUGHK Log._Debug($"CustomSegmentLights: housekeeping @ seg. {SegmentId}, node {nodeId}: Housekeeping complete. VehicleTypeByLaneIndex={string.Join("; ", VehicleTypeByLaneIndex.Select(x => x == null ? "null" : x.ToString()).ToArray())} CustomLights={string.Join("; ", CustomLights.Select(x => x.Key.ToString()).ToArray())}"); #endif }
/// <summary> /// Default Constructor /// </summary> public MotorCycle() { VehicleTypes.Add("motorcycle"); }
public void AddVehicle(string make, string registrationNumber, double odometer, double costkm, VehicleStatuses status, VehicleTypes type) { IVehicle vehicle = new Car(_db.NextVehicleId, make, registrationNumber, odometer, costkm, status, type); _db.AddVehicle(vehicle); try { if (registrationNumber.Equals(string.Empty) || make == default) { throw new ArgumentException("The Registration Number cannot be empty."); } else if (make.Equals(string.Empty) || make == default) { throw new ArgumentException("The make name cannot be empty."); } else if (odometer < 1) { throw new ArgumentException("The odometer must be greater than 0."); } else if (costkm < 0) { throw new ArgumentException("he costKm must be greater than 0."); } } catch (Exception) { throw; } }
private async void AddNewVehicle() { if (BaseView != null && BaseView.CheckInternetConnection()) { var isChecked = VehicleTypes.FirstOrDefault(x => x.IsChecked == true); if (isChecked != null && !string.IsNullOrEmpty(PlateNumber)) { Mvx.Resolve <IMvxMessenger>().Publish(new ProgressMessage(this, true)); if (IsEditMode) { var result = await mApiService.PutVehicle(mCacheService.CurrentUser.UserId, VehicleId, isChecked.Type, PlateNumber); if (result != null) { //Mvx.Resolve<IMvxMessenger>().Publish(new ToastMessage(this, result.Result)); //Mvx.Resolve<IMvxMessenger>().Publish(new ToastMessage(this, result.Response.Result.Equals("success") ? result.Response.Result : string.Format("{0}: {1}", result.Response.Result, result.Response.ErrorCode))); if (result.Response.Status.Equals("success")) { Mvx.Resolve <IMvxMessenger>().Publish(new ToastMessage(this, result.Response.Status)); } else { Mvx.Resolve <IMvxMessenger>().Publish(new AlertMessage(this, string.Empty, string.Format("{0}: {1}", result.Response.Status, result.Response.ErrorCode), "Ok", null)); } //update user vehicles that has been cached if (result.Response.Status.Equals("success")) { var vehicle = mCacheService.UserVehicles.FirstOrDefault(x => x.VehicleId.Equals(VehicleId)); if (vehicle != null) { vehicle.Type = isChecked.Type; vehicle.PlateNumber = PlateNumber; } Mvx.Resolve <IMvxMessenger>().Publish(new UpdateSuccessMessage(this)); //save to local database BlobCache.UserAccount.InsertObject <List <Vehicle> >(mCacheService.CurrentUser.UserId, mCacheService.UserVehicles); } Close(this); } } else { var result = await mApiService.CreateVehicle(mCacheService.CurrentUser.UserId, isChecked.Type, PlateNumber); if (result != null) { //Mvx.Resolve<IMvxMessenger>().Publish(new ToastMessage(this, result.Result + "\n" + result.VehicleId)); //Mvx.Resolve<IMvxMessenger>().Publish(new ToastMessage(this, result.Response.Result.Equals("success") ? result.Response.Result : string.Format("{0}: {1}", result.Response.Result, result.Response.ErrorCode))); if (result.Response.Status.Equals("success")) { Mvx.Resolve <IMvxMessenger>().Publish(new ToastMessage(this, result.Response.Status)); } else { Mvx.Resolve <IMvxMessenger>().Publish(new AlertMessage(this, string.Empty, string.Format("{0}: {1}", result.Response.Status, result.Response.ErrorCode), "Ok", null)); } if (result.Response.Status.Equals("success")) { var vehicle = new Vehicle() { VehicleId = result.Response.VehicleId, Type = isChecked.Type, PlateNumber = PlateNumber }; if (!mCacheService.UserVehicles.Contains(vehicle)) { mCacheService.UserVehicles.Add(vehicle); } Mvx.Resolve <IMvxMessenger>().Publish(new UpdateSuccessMessage(this)); //save to local database BlobCache.UserAccount.InsertObject <List <Vehicle> >(mCacheService.CurrentUser.UserId, mCacheService.UserVehicles); } Close(this); } } Mvx.Resolve <IMvxMessenger>().Publish(new ProgressMessage(this, false)); } else { Mvx.Resolve <IMvxMessenger>().Publish(new ToastMessage(this, isChecked != null ? mCacheService.TextSource.GetText("PleaseEnterPlateNumberText") : mCacheService.TextSource.GetText("PleaseChooseVehicleTypeText"))); } } else { Mvx.Resolve <IMvxMessenger>().Publish(new ToastMessage(this, SharedTextSource.GetText("TurnOnInternetText"))); } }
public AddRecordResponse AddVehicleTypes([FromBody] VehicleTypes vehicleTypes) { return(repo.AddVehicleType(vehicleTypes.VehicleType)); }
public Response UpdateVehicleTypes([FromBody] VehicleTypes vehicleTypes) { return(repo.UpdateVehicleType(vehicleTypes)); }
private void ActivateVehicle(Transform vehicle, Transform marker, Transform mouse, VehicleTypes type) { DeActivateAllVehicles(); //Move to the start pos vehicle.position = startPos; vehicle.rotation = startRot; //Make the models visible vehicle.gameObject.SetActive(true); mouse.gameObject.SetActive(true); //But hide the marker where we want to go marker.gameObject.SetActive(false); DisplayController.current.ResetGUI(); StopCar(); //Stop the car because we move it from the current position so it may still move Rigidbody rb = vehicle.GetComponent <Rigidbody>(); rb.angularVelocity = Vector3.zero; rb.velocity = Vector3.zero; activeVehicle = type; }
public abstract object GetVehicleTitleMarker(VehicleTypes type, string title);
public void SeedTestData() { if (VehicleTypes.Count() == 0) { VehicleTypes.AddOrUpdate(t => t.Id, new[] { new VehicleType { Id = 1, Name = "Car" }, new VehicleType { Id = 2, Name = "Motorcycle" }, new VehicleType { Id = 3, Name = "Truck" }, new VehicleType { Id = 4, Name = "Bus" } }); } if (ParkingSlots.Count() == 0) { for (int i = 0; i < 100; ++i) { ParkingSlots.AddOrUpdate(new ParkingSlot { ParkingId = null }); } } Owners.AddOrUpdate(o => o.Id, new[] { new Owner { Id = 1, Name = "Bob" }, new Owner { Id = 2, Name = "John" }, new Owner { Id = 3, Name = "Eve" } }); SaveChanges(); Vehicles.AddOrUpdate(v => v.Id, new[] { new Vehicle { Id = 1, OwnerId = 1, RegNr = "AAA111", VehicleTypeId = 1 }, new Vehicle { Id = 2, OwnerId = 1, RegNr = "AAA222", VehicleTypeId = 1 }, new Vehicle { Id = 3, OwnerId = 1, RegNr = "AAA333", VehicleTypeId = 1 }, new Vehicle { Id = 4, OwnerId = 1, RegNr = "BBB222", VehicleTypeId = 2 }, new Vehicle { Id = 5, OwnerId = 2, RegNr = "BBB333", VehicleTypeId = 2 }, new Vehicle { Id = 6, OwnerId = 2, RegNr = "CCC333", VehicleTypeId = 3 }, new Vehicle { Id = 7, OwnerId = 2, RegNr = "CCC444", VehicleTypeId = 3 }, new Vehicle { Id = 8, OwnerId = 3, RegNr = "DDD444", VehicleTypeId = 4 }, new Vehicle { Id = 9, OwnerId = 3, RegNr = "DDD555", VehicleTypeId = 4 } }); SaveChanges(); if (Parkings.Count() == 0) { Parkings.AddOrUpdate(p => p.Id, new[] { new Parking { Id = 1, ParkingSlotId = 1, VehicleId = 1, DateIn = DateTime.Now, DateOut = null }, new Parking { Id = 2, ParkingSlotId = 2, VehicleId = 2, DateIn = DateTime.Now.AddDays(-1), DateOut = null }, new Parking { Id = 3, ParkingSlotId = 3, VehicleId = 3, DateIn = DateTime.Now.AddDays(-2), DateOut = DateTime.Now }, new Parking { Id = 4, ParkingSlotId = 4, VehicleId = 4, DateIn = DateTime.Now.AddDays(-4), DateOut = DateTime.Now.AddDays(-2) }, new Parking { Id = 5, ParkingSlotId = 4, VehicleId = 5, DateIn = DateTime.Now, DateOut = null }, }); ParkingSlots.Find(1).ParkingId = 1; ParkingSlots.Find(2).ParkingId = 2; ParkingSlots.Find(4).ParkingId = 5; SaveChanges(); } }
public void PUT(VehicleTypes VehicleTypes) { _vehicleTypeService.Update(VehicleTypes); }
public void Add(VehicleTypes vehicle) { _vehicleTypes.Add(vehicle); }
public async Task <IEnumerable <VehicleTypes> > GetVehicleTypes() { return(VehicleTypes.List()); }
public void Delete(VehicleTypes vehicle) { _vehicleTypes.Delete(vehicle); }
public void Start() { // setup the status to be initializing _Status = null; _Progress = () => 0f; CurrentIteration = 0; if (!VehicleTypes.Contains(AutoType)) { VehicleTypes.Add(AutoType); } ZoneSystem.LoadData(); if (PreRun != null) { foreach (var module in PreRun) { module.Start(); } } IterationPercentage = 1f / TotalIterations; if (PostScheduler != null) { foreach (var module in PostScheduler) { module.Load(TotalIterations); } } if (PostHousehold != null) { foreach (var module in PostHousehold) { module.Load(TotalIterations); } } if (OverrideModeParameters) { InitializeParameters(); } LoadNetworkData(0); if (Scheduler != null) { Scheduler.LoadOneTimeLocalData(); } if (ModeChoice != null) { ModeChoice.LoadOneTimeLocalData(); } for (int i = 0; i < TotalIterations; i++) { if (!_ExitRequested) { CurrentHousehold = 0; CurrentIteration = i; CompletedIterationPercentage = i * IterationPercentage; if (LoadAllHouseholds) { if (!SkipLoadingHouseholds) { HouseholdLoader.LoadData(); } } RunIteration(i); } } if (PostRun != null) { foreach (var module in PostRun) { module.Start(); } } ZoneSystem.UnloadData(); }
public void Update(VehicleTypes vehicle) { _vehicleTypes.Update(vehicle); }
//constructor public Car(int ID, string make, string registrationNum, double odometer, double costkm, VehicleStatuses status, VehicleTypes type) : base(ID, make, registrationNum, odometer, costkm, status, type) { }
public void AddVehicle(string make, string registationNumber, double odometer, double costKm, VehicleStatuses status, VehicleTypes type) { _db.AddVehicle(new Car(_db.NextVehicle, registationNumber, make, odometer, costKm, type, status)); }
/// <summary> /// Default Constructor /// </summary> public SmallTruck() { // http://wiki.openstreetmap.org/wiki/Key:goods VehicleTypes.Add("goods"); }
private VehicleForecastItem ParseVehicleForecast(Bus13VehicleForecastItem item, VehicleTypes vehicleType) { var routeStop = this.ParseRouteStop(item.StId, item.StName, item.StDescr, vehicleType, GeoPoint.Empty); return(new VehicleForecastItem(routeStop, item.Arrt)); }
/// <summary> /// Default constructor. /// </summary> public Bus() { // http://wiki.openstreetmap.org/wiki/Key:tourist_bus VehicleTypes.Add("tourist_bus"); }
/// <summary> /// Constructor. /// </summary> /// <param name="go"></param> public AIVehicle(GameObject go, ObjectSyncComponent osc) { gameObject = go; syncComponent = osc; parentGameObject = go.transform.parent.gameObject; // Set vehicle type, used to apply vehicle-specific event hooks. string goName = gameObject.transform.parent.gameObject.name; if (goName == "AMIS2" || goName == "KYLAJANI") { type = VehicleTypes.Amis; } else if (goName == "BUS") { type = VehicleTypes.Bus; } else if (goName == "FITTAN" && parentGameObject.transform.FindChild("Navigation") != null) { type = VehicleTypes.Fitan; } else if (parentGameObject.transform.FindChild("NavigationCW") != null || parentGameObject.transform.FindChild("NavigationCCW") != null) { type = VehicleTypes.TrafficDirectional; } else { type = VehicleTypes.Traffic; } rigidbody = parentGameObject.GetComponent <Rigidbody>(); dynamics = parentGameObject.GetComponent <CarDynamics>(); throttleFsm = Utils.GetPlaymakerScriptByName(parentGameObject, "Throttle"); if (type == VehicleTypes.TrafficDirectional) { if (parentGameObject.transform.FindChild("NavigationCW") != null) { navigationFsm = Utils.GetPlaymakerScriptByName( parentGameObject.transform.FindChild("NavigationCW").gameObject, "Navigation"); isClockwise = 1; } else { navigationFsm = Utils.GetPlaymakerScriptByName( parentGameObject.transform.FindChild("NavigationCCW").gameObject, "Navigation"); isClockwise = 0; } directionFsm = Utils.GetPlaymakerScriptByName(parentGameObject, "Direction"); } else { navigationFsm = Utils.GetPlaymakerScriptByName( parentGameObject.transform.FindChild("Navigation").gameObject, "Navigation"); } EventHooks(); }
public void UpdateVehicle(VehicleTypes vht) { throw new NotImplementedException(); }
//constructor public Vehicle(int ID, string make, string registrationNum, double odometer, double costkm, VehicleStatuses status, VehicleTypes type) { Id = ID; Make = make; RegistrationNumber = registrationNum; Odometer = odometer; CostKm = costkm; Status = status; Type = type; }
/// <summary> /// Default Constructor /// </summary> public Car() { VehicleTypes.Add("motorcar"); }
public Vehicle AddVehicleMenu(VehicleTypes vehicleType) { string regNr = ""; while (regNr == "") { Console.Write("Ange Registreringsnummer: "); regNr = Console.ReadLine(); } Console.Write("Ange Färg: "); string color = Console.ReadLine(); int weight = 0; Console.Write("Ange vikt: "); int.TryParse(Console.ReadLine(), out weight); switch (vehicleType) { case VehicleTypes.Car: Console.WriteLine("Ange bilmärke: "); string carBrand = Console.ReadLine(); Car car = new Car(regNr, color, weight, carBrand); return(car); case VehicleTypes.AirPlane: Console.Write("Ange antal hjul: "); int wheel = 0; int.TryParse(Console.ReadLine(), out wheel); Console.Write("Ange max antal passagerare: "); int numberOfSeats = 0; int.TryParse(Console.ReadLine(), out numberOfSeats); Airplane airplane = new Airplane(regNr, color, wheel, weight, numberOfSeats); return(airplane); case VehicleTypes.Bus: Console.Write("Ange antal hjul: "); wheel = 0; int.TryParse(Console.ReadLine(), out wheel); Console.Write("Ange bussens längd i meter: "); int length = 0; int.TryParse(Console.ReadLine(), out length); Bus bus = new Bus(regNr, color, wheel, weight, length); return(bus); case VehicleTypes.Motorcycle: Console.Write("Ange antal hjul: "); wheel = 0; int.TryParse(Console.ReadLine(), out wheel); Console.Write("Ange max hastigheten på motorcykeln: "); int MaxSpeed = 0; int.TryParse(Console.ReadLine(), out MaxSpeed); Motorcycle motorcycle = new Motorcycle(regNr, color, wheel, weight, MaxSpeed); return(motorcycle); case VehicleTypes.Boat: Console.Write("Ange båtens bränsletyp: "); string fuelType = Console.ReadLine(); Boat boat = new Boat(regNr, color, weight, fuelType); return(boat); } return(null); }
public static ObservableCollection <ParkingSpots> FilterList(this ObservableCollection <ParkingSpots> list, VehicleTypes selectedVehicle) { var filtered = list.Where(x => x.ParkCapacity >= selectedVehicle.ParkSize); return(new ObservableCollection <ParkingSpots>(filtered)); }
public RentalService(VehicleTypes.Contract.IFactory vehicleTypesFactory, IRentalsRepository rentalsRepository) { _vehicleTypesFactory = vehicleTypesFactory; _rentalsRepository = rentalsRepository; }