private static CardData CreateDataSource(Vehicle vehicle) { VehicleState vehicleState = Provider.Instance.VehicleStates.Find(vs => vs.vehicleId == vehicle.vehicleId); List <DetailText> cardTextList = new List <DetailText>(); var selectedDetails = Provider.Instance.CurrentUser.settings.vehicleViewSettings.Find(p => p.vehicleId == vehicle.vehicleId).cellSet; foreach (var item in selectedDetails) { DetailText cardText; try { cardText = GetCardTextByType(item, vehicle, vehicleState); } catch (NullReferenceException e) { cardText = new DetailText(); cardText.top = ""; cardText.bottom = ""; } cardTextList.Add(cardText); } List <DetailText> expandTextList = new List <DetailText>(); var notSelectedDetails = Enum.GetValues(typeof(VehicleDataType)).Cast <VehicleDataType>().ToList(); notSelectedDetails.RemoveAll(p => selectedDetails.Contains(p)); foreach (var item in notSelectedDetails) { try { DetailText t = GetCardTextByType(item, vehicle, vehicleState); expandTextList.Add(t); } catch (NullReferenceException e) { NullReferenceException ef = e; } } return(new CardData() { HeaderImageSource = "Icon.png", SelectedDetails = cardTextList, ExpandedTextList = expandTextList, PlateNumber = vehicle.plateNumber }); }
public static DetailText GetCardTextByType(VehicleDataType?dataType, Vehicle vehicle, VehicleState vehicleState) { DetailText cardText = new DetailText(); switch (dataType) { case VehicleDataType.PLATE_NUMBER: cardText.top = "Plate:"; cardText.bottom = vehicle.plateNumber; break; case VehicleDataType.VEHICLE_TYPE: cardText.top = "Type:"; cardText.bottom = vehicle.type; break; case VehicleDataType.TIME: cardText.top = "Time:"; cardText.bottom = vehicleState.time.ToString(); ///TODO epoch time vagy mi gyün? break; case VehicleDataType.ADDRESS: cardText.top = "Address:"; cardText.bottom = vehicleState.address; break; case VehicleDataType.BUSINESS_TRIP: cardText.top = "Businness trip:"; if (vehicleState.businessTrip) { cardText.bottom = "True"; } else { cardText.bottom = "False"; } break; case VehicleDataType.MAKE: cardText.top = "Make:"; cardText.bottom = vehicle.make; break; case VehicleDataType.LAT: cardText.top = "Lat:"; cardText.bottom = vehicleState.position.lat.ToString(); break; case VehicleDataType.LNG: cardText.top = "Lon:"; cardText.bottom = vehicleState.position.lng.ToString(); break; case VehicleDataType.SPEED: cardText.top = "Speed:"; cardText.bottom = vehicleState.speed.ToString(); // TODO break; case VehicleDataType.RPM: cardText.top = "RPM:"; cardText.bottom = vehicleState.rpm.ToString(); break; case VehicleDataType.IGNITION: cardText.top = "Ignition:"; cardText.bottom = vehicleState.ignition.ToString(); break; case VehicleDataType.MILEAGE_STATE: cardText.top = "Mileage State:"; cardText.bottom = vehicleState.mileageState.ToString(); break; case VehicleDataType.SIGNAL: cardText.top = "Signal:"; cardText.bottom = vehicleState.signal.ToString(); break; case VehicleDataType.EXT_BATT_VOLT: cardText.top = "Ext. battery:"; cardText.bottom = vehicleState.extBattVolt.ToString(); break; case VehicleDataType.INT_BATT_VOLT: cardText.top = "Int. bat volt:"; cardText.bottom = vehicleState.intBattVolt.ToString(); break; case VehicleDataType.FUEL_1: cardText.top = "Fuel_1:"; cardText.bottom = vehicleState.fuel1.ToString(); break; case VehicleDataType.FUEL_2: cardText.top = "Fuel_2:"; cardText.bottom = vehicleState.fuel2.ToString(); break; case VehicleDataType.SUM_BURNED_FUEL: cardText.top = "Sum burned fuel:"; cardText.bottom = vehicleState.sumBurnedFuel.ToString(); break; case VehicleDataType.AXLE_NUM_SET: cardText.top = "Axle:"; cardText.bottom = vehicleState.axleNumSet.ToString(); break; case VehicleDataType.DRIVER: cardText.top = "Driver:"; cardText.bottom = vehicleState.driver.ToString(); break; default: break; } return(cardText); }