private IEnumerable <SelectListItem> ListModelYears() { var modelYears = AvailableVehicles .Where(v => LookupVehicle is EmptyVehicle || ( v.Make.Equals(LookupVehicle.Make, StringComparison.OrdinalIgnoreCase) && v.ProgrammeId == LookupVehicle.ProgrammeId) ) .Select(v => v.ModelYear) .Distinct() .Select(my => new SelectListItem { Text = my, Value = my, Selected = !(LookupVehicle is EmptyVehicle) && !string.IsNullOrEmpty(LookupVehicle.ModelYear) && LookupVehicle.ModelYear.Equals(my, StringComparison.OrdinalIgnoreCase) }).ToList(); if (!modelYears.Any() || modelYears.Count() == 1) { return(modelYears); } AppendDefaultItem(modelYears); return(modelYears); }
private IEnumerable <SelectListItem> ListProgrammes() { var programmes = AvailableVehicles //.Where(v => LookupVehicle is EmptyVehicle || // ( // v.Make.Equals(LookupVehicle.Make, StringComparison.OrdinalIgnoreCase)) // ) .Distinct(new UniqueVehicleByNameComparer()) .Select(v => new SelectListItem { Text = v.Description, Value = v.Code, Selected = !(LookupVehicle is EmptyVehicle) && LookupVehicle.ProgrammeId.GetValueOrDefault() == v.ProgrammeId }).ToList(); if (!programmes.Any() || programmes.Count() == 1) { return(programmes); } AppendDefaultItem(programmes); return(programmes); }
private IEnumerable <SelectListItem> ListMakes() { var makes = AvailableVehicles .Select(v => v.Make) .Distinct() .Select(m => new SelectListItem { Text = m, Value = m }).ToList(); if (!makes.Any() || makes.Count() == 1) { return(makes); } if (makes.Any(i => i.Selected == true)) { makes.Insert(0, new SelectListItem { Text = "-- SELECT --", Value = "" }); } else { makes.Insert(0, new SelectListItem { Text = "-- SELECT --", Value = "", Selected = true }); } return(makes); }
private IEnumerable <SelectListItem> ListGateways() { var gateways = AvailableVehicles .Where(v => LookupVehicle is EmptyVehicle || ( v.Make.Equals(LookupVehicle.Make, StringComparison.OrdinalIgnoreCase) && v.ProgrammeId == LookupVehicle.ProgrammeId && v.ModelYear.Equals(LookupVehicle.ModelYear, StringComparison.OrdinalIgnoreCase ))) .Select(v => v.Gateway) .Distinct() .Select(g => new SelectListItem { Text = g, Value = g, Selected = !(LookupVehicle is EmptyVehicle) && !string.IsNullOrEmpty(LookupVehicle.Gateway) && LookupVehicle.Gateway.Equals(g, StringComparison.OrdinalIgnoreCase) }).ToList(); if (!gateways.Any() || gateways.Count() == 1) { return(gateways); } AppendDefaultItem(gateways); return(gateways); }
static void Main(string[] args) { AvailableVehicles availableVehicles = new AvailableVehicles(); IVehicle prototype = availableVehicles["Antos"]; IVehicle vehicle = prototype.DeepCopy(); vehicle.ChooseColor("Black", 400.00f); vehicle.ChooseTires("Thunderer R404 AT", 134.00f); vehicle.ChooseAccessories(Accessories.A_C, Accessories.Stereo, Accessories.Speakers); vehicle.DisplayInfo(); prototype.DisplayInfo(); Console.WriteLine($"prototype and vehicle are the same instance: {ReferenceEquals(prototype, vehicle)}\n"); Console.ReadLine(); }
public AvailableVehiclesResponse Post(AvailableVehicles request) { var vehicleType = _dao.GetAll().FirstOrDefault(v => v.ReferenceDataVehicleId == request.VehicleTypeId); var logoName = vehicleType != null ? vehicleType.LogoName : null; IbsVehiclePosition[] ibsVehicles; string market = null; try { market = _taxiHailNetworkServiceClient.GetCompanyMarket(request.Latitude, request.Longitude); } catch { // Do nothing. If we fail to contact Customer Portal, we continue as if we are in a local market. _logger.LogMessage("VehicleService: Error while trying to get company Market to find available vehicles."); } if (!market.HasValue() && _serverSettings.ServerData.LocalAvailableVehiclesMode == LocalAvailableVehiclesModes.IBS) { // LOCAL market IBS ibsVehicles = _ibsServiceProvider.Booking().GetAvailableVehicles(request.Latitude, request.Longitude, request.VehicleTypeId); } else { string availableVehiclesMarket; IList <int> availableVehiclesFleetIds = null; if (!market.HasValue() && _serverSettings.ServerData.LocalAvailableVehiclesMode == LocalAvailableVehiclesModes.HoneyBadger) { // LOCAL market Honey Badger availableVehiclesMarket = _serverSettings.ServerData.HoneyBadger.AvailableVehiclesMarket; if (request.FleetIds != null) { // Use fleet ids specified in the request first availableVehiclesFleetIds = request.FleetIds; } else if (_serverSettings.ServerData.HoneyBadger.AvailableVehiclesFleetId.HasValue) { // Or fleet id specified in the settings availableVehiclesFleetIds = new[] { _serverSettings.ServerData.HoneyBadger.AvailableVehiclesFleetId.Value }; } } else if (!market.HasValue() && _serverSettings.ServerData.LocalAvailableVehiclesMode == LocalAvailableVehiclesModes.Geo) { // LOCAL market Geo availableVehiclesMarket = _serverSettings.ServerData.CmtGeo.AvailableVehiclesMarket; if (_serverSettings.ServerData.CmtGeo.AvailableVehiclesFleetId.HasValue) { availableVehiclesFleetIds = new[] { _serverSettings.ServerData.CmtGeo.AvailableVehiclesFleetId.Value }; } } else { // EXTERNAL market Honey Badger or Geo availableVehiclesMarket = market; try { // Only get available vehicles for dispatchable companies in market var roamingCompanies = _taxiHailNetworkServiceClient.GetMarketFleets(_serverSettings.ServerData.TaxiHail.ApplicationKey, market); if (roamingCompanies != null) { var roamingFleetIds = roamingCompanies.Select(r => r.FleetId); if (request.FleetIds != null) { // From the fleets accessible by that company, only return vehicles from the fleets specified in the request availableVehiclesFleetIds = roamingFleetIds .Where(fleetId => request.FleetIds.Contains(fleetId)) .ToArray(); } else { // Return vehicles from all fleets accessible by that company availableVehiclesFleetIds = roamingFleetIds.ToArray(); } } else { availableVehiclesFleetIds = request.FleetIds; } } catch { // Do nothing. If we fail to contact Customer Portal, we return an unfiltered list of available vehicles. _logger.LogMessage("VehicleService: Error while trying to get Market fleets."); } } var vehicleResponse = GetAvailableVehiclesServiceClient(market).GetAvailableVehicles( market: availableVehiclesMarket, latitude: request.Latitude, longitude: request.Longitude, searchRadius: request.SearchRadius, fleetIds: availableVehiclesFleetIds, wheelchairAccessibleOnly: (vehicleType != null && vehicleType.IsWheelchairAccessible)); ibsVehicles = vehicleResponse.Select(v => new IbsVehiclePosition { Latitude = v.Latitude, Longitude = v.Longitude, PositionDate = v.Timestamp, VehicleNumber = v.Medallion, FleetId = v.FleetId, Eta = (int?)v.Eta, VehicleType = v.VehicleType, CompassCourse = v.CompassCourse, }).ToArray(); } var isAuthenticated = this.GetSession().IsAuthenticated; var availableVehicles = new List <AvailableVehicle>(); foreach (var ibsVehicle in ibsVehicles) { var vehicle = new AvailableVehicle { Latitude = ibsVehicle.Latitude, Longitude = ibsVehicle.Longitude, LogoName = logoName, Eta = ibsVehicle.Eta, VehicleType = ibsVehicle.VehicleType }; if (isAuthenticated) { vehicle.CompassCourse = ibsVehicle.CompassCourse ?? 0; vehicle.VehicleName = ibsVehicle.VehicleNumber; vehicle.FleetId = ibsVehicle.FleetId; } availableVehicles.Add(vehicle); } return(new AvailableVehiclesResponse(availableVehicles)); }
public OrderMapView(IntPtr handle) : base(handle) { Initialize(); _dropoffCenterPin = new UIImageView(AddressAnnotation.GetImage(AddressAnnotationType.Destination)) { BackgroundColor = UIColor.Clear, ContentMode = UIViewContentMode.Center, Hidden = true }; _pickupCenterPin = new UIImageView(AddressAnnotation.GetImage(AddressAnnotationType.Pickup)) { BackgroundColor = UIColor.Clear, ContentMode = UIViewContentMode.Center, Hidden = true }; RegionChanged += (s, e) => { var canShowClusterizedTaxiMarker = ViewModel != null && !ViewModel.Settings.ShowIndividualTaxiMarkerOnly; if (canShowClusterizedTaxiMarker && CanShowAvailableVehicle()) { ShowAvailableVehicles(VehicleClusterHelper.Clusterize(AvailableVehicles != null ? AvailableVehicles.ToArray() : null, GetMapBoundsFromProjection())); } if (TaxiLocation != null && !_automatedMapChanged) { CancelAutoFollow.ExecuteIfPossible(); } else if (_automatedMapChanged) { _automatedMapChanged = false; } }; }