Hello,
I have a problem which needs to be resolved.
Here is the entire code for the program that I made listed below:
MainPage.xaml:
<Page
x:Class="Arsalan_Salam_991571527_A2.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Arsalan_Salam_991571527_A2"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid RenderTransformOrigin="0.497,0.522">
<TextBlock HorizontalAlignment="Left" Margin="572,10,0,0" Text="DriveWell Inc." TextAlignment="Center" FontSize="50" VerticalAlignment="Top" Width="374" Height="72"/>
<TextBlock HorizontalAlignment="Left" Margin="87,88,0,0" Text="Vin Number" TextAlignment="Center" FontSize="30" VerticalAlignment="Top" Width="192" Height="67" RenderTransformOrigin="0.457,-0.751"/>
<TextBlock HorizontalAlignment="Left" Margin="67,185,0,0" Text="Car Make" TextAlignment="Center" FontSize="30" VerticalAlignment="Top" Width="194" Height="63"/>
<TextBlock HorizontalAlignment="Left" Margin="87,282,0,0" Text="Car Type" TextAlignment="Center" FontSize="30" VerticalAlignment="Top" Width="183" Height="61"/>
<TextBlock HorizontalAlignment="Left" Text="Purchase Price" TextAlignment="Center" FontSize="30" VerticalAlignment="Top" Margin="87,380,0,0" Width="226" Height="61" RenderTransformOrigin="3.948,-0.233"/>
<TextBlock HorizontalAlignment="Left" Margin="87,487,0,0" Text="Model Year" TextAlignment="Center" FontSize="30" VerticalAlignment="Top" Height="65" Width="190" RenderTransformOrigin="3.283,-2.555"/>
<TextBlock HorizontalAlignment="Left" Margin="87,584,0,0" Text="Mileage (Km)" TextAlignment="Center" FontSize="30" VerticalAlignment="Top" Height="43" Width="192"/>
<Button x:Name="addingCar" Click="AddingCar_Click" Content="Add Car" FontSize="30" Margin="43,639,0,0" VerticalAlignment="Top" Height="56" Width="156"/>
<Button x:Name="clearing" Click="Clearing_Click" Content="Clear" FontSize="30" Margin="224,639,0,0" VerticalAlignment="Top" Height="56" Width="134"/>
<Button x:Name="updatingCar" Content="Update" FontSize="30" Margin="379,639,0,0" VerticalAlignment="Top" Height="56" Width="130"/>
<ComboBox x:Name="carTypeInput" Margin="348,282,0,0" Width="191" Height="57"/>
<ComboBox x:Name="modelYearInput" Margin="348,483,0,0" Width="191" Height="52"/>
<TextBox x:Name="vinNumberInput" HorizontalAlignment="Left" Margin="348,88,0,0" Text="" FontSize="25" VerticalAlignment="Top" Height="40" Width="191" RenderTransformOrigin="0.476,-1.383"/>
<TextBox x:Name="carMakeInput" HorizontalAlignment="Left" Margin="348,176,0,0" Text="" FontSize="25" VerticalAlignment="Top" Height="58" Width="191"/>
<TextBox x:Name="purchasePriceInput" HorizontalAlignment="Left" Margin="348,380,0,0" Text="" FontSize="25" VerticalAlignment="Top" Height="52" Width="191"/>
<TextBox x:Name="mileageInput" HorizontalAlignment="Left" Margin="348,584,0,0" Text="" FontSize="15" VerticalAlignment="Top" Height="32" Width="191"/>
<Image x:Name="carImageOutput" HorizontalAlignment="Left" Height="429" Margin="1013,106,0,0" VerticalAlignment="Top" Width="226"/>
<TextBlock x:Name="errorMessageOutput" HorizontalAlignment="Left" Margin="572,624,0,0" Text="" HorizontalTextAlignment="Center" FontSize="15" VerticalAlignment="Top" Width="641" Height="62"/>
<ListView x:Name="lstCarDetailOutput" Margin="572,88,315,120"></ListView>
</Grid>
</Page>
Enum:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Arsalan_Salam_991571527_A2
{
public enum CarType
{
Odyssey,
Rogue,
Sienna
}
}
Class CarRepository:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Arsalan_Salam_991571527_A2
{
class CarRepository
{
private List<Car> _carProducts = new List<Car>();
public void AddProduct(Car c)
{
try
{
if (GetByCode(c.VinNumber) != null)
{
throw new Exception("Product already exists.");
}
_carProducts.Add(c);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
public Car GetByCode(string productCode)
{
foreach (Car c in _carProducts)
{
if (c.VinNumber == productCode)
{
return c;
}
}
return null;
}
}
}
Class Car:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Arsalan_Salam_991571527_A2
{
class Car
{
private string _vinNumber;
private string _carMake;
private CarType _typeOfCar;
private float _purchasePrice;
private int _mileage;
public override string ToString()
{
return $"{VinNumber}, {CarMake}, {TypeOfCar}, {PurchasePrice}, {Mileage}";
}
public Car(string vinNumber, string carMake, CarType typeOfCar, float purchasePrice, int[] modelYear, int mileage)
{
VinNumber = vinNumber;
CarMake = carMake;
TypeOfCar = typeOfCar;
PurchasePrice = purchasePrice;
Mileage = mileage;
}
public Car(string vinNumber, string carMake, CarType typeOfCar, float purchasePrice, int modelYear, int mileage)
{
VinNumber = vinNumber;
CarMake = carMake;
TypeOfCar = typeOfCar;
PurchasePrice = purchasePrice;
Mileage = mileage;
}
public string VinNumber
{
get { return _vinNumber; }
private set
{
if (string.IsNullOrEmpty(value))
throw new Exception("vin number code cannot be blank");
_vinNumber = value;
}
}
public string CarMake
{
get { return _carMake; }
private set
{
if (string.IsNullOrEmpty(value))
throw new Exception("car make cannot be blank");
_carMake = value;
}
}
public CarType TypeOfCar
{
get { return _typeOfCar; }
set
{
if (_typeOfCar.Equals(""))
{
throw new Exception("Car type cannot be blank");
}
_typeOfCar = value;
}
}
public float PurchasePrice
{
get
{
return _purchasePrice;
}
private set
{
if (value == 0)
throw new Exception("Purchase price cannot be blank or 0");
_purchasePrice = value;
}
}
public int Mileage
{
get { return _mileage; }
set
{
if (_mileage == 0)
{
throw new Exception("Mileage cannot be blank or 0");
_mileage = value;
}
}
}
}
}
MainPage.xaml.cs:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;
using Windows.UI.Xaml.Navigation;
namespace Arsalan_Salam_991571527_A2
{
public sealed partial class MainPage : Page
{
public int[] modelYear = new int[] { 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 };
public MainPage()
{
this.InitializeComponent();
AddingEnumIntoComboBox(null);
AddingIntArrayIntoComboBox(null);
}
public override string ToString()
{
return $"{ModelYear}";
}
private CarRepository _carRepository = new CarRepository();
private Car CaptureProductInfo()
{
string vinNumber = vinNumberInput.Text;
string carMake = carMakeInput.Text;
CarType typeOfCar = (CarType)carTypeInput.SelectedValue;
float purchasePrice = float.Parse(purchasePriceInput.Text);
int modelYear = Int32.Parse((string)modelYearInput.SelectedValue);
int mileage = Int32.Parse(mileageInput.Text);
Car c = new Car(vinNumber, carMake, typeOfCar, purchasePrice, modelYear, mileage);
return c;
}
private void RenderProductInfo(Car car)
{
vinNumberInput.Text = car.VinNumber;
carMakeInput.Text = car.CarMake;
carTypeInput.SelectedItem = car.TypeOfCar.ToString();
purchasePriceInput.Text = car.PurchasePrice.ToString();
modelYearInput.SelectedItem = ModelYear.ToString();
mileageInput.Text = car.Mileage.ToString();
}
private void ClearUI()
{
vinNumberInput.Text = "";
carMakeInput.Text = "";
carTypeInput.Items.Clear();
purchasePriceInput.Text = "";
modelYearInput.Items.Clear();
mileageInput.Text = "";
errorMessageOutput.Text = "";
}
private void AddingEnumIntoComboBox(object p)
{
foreach (var item in Enum.GetValues(typeof(CarType)))
{
var carTypeName = Enum.GetName(typeof(CarType), item);
carTypeInput.Items.Add(carTypeName);
}
}
private void AddingIntArrayIntoComboBox(object p)
{
for (int i = 0; i < modelYear.Length; i++)
{
int year = modelYear[i];
modelYearInput.Items.Add(year);
}
}
public int[] ModelYear
{
get { return modelYear; }
set
{
if (modelYear.Length == 0)
throw new Exception("Model year cannot be blank");
modelYear = value;
}
}
private void AddingCar_Click(object sender, RoutedEventArgs e)
{
string carType = carTypeInput.SelectedItem.ToString();
string yearInput = modelYearInput.SelectedItem.ToString();
try
{
Car c = CaptureProductInfo();
_carRepository.AddProduct(c);
lstCarDetailOutput.Items.Add(c);
}
catch (Exception ex)
{
errorMessageOutput.Text = ex.Message;
}
if (carType == "Honda" && yearInput == "2010")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2010Odyssey.jpg"));
}
else if (carType == "Honda" && yearInput == "2011")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2011Odyssey.jpg"));
}
else if (carType == "Honda" && yearInput == "2012")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2012Odyssey.jpg"));
}
else if (carType == "Honda" && yearInput == "2013")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2013Odyssey.jpg"));
}
else if (carType == "Honda" && yearInput == "2014")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2014Odyssey.jpg"));
}
else if (carType == "Honda" && yearInput == "2015")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2015Odyssey.jpg"));
}
else if (carType == "Honda" && yearInput == "2016")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2016Odyssey.jpg"));
}
else if (carType == "Honda" && yearInput == "2017")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2017Odyssey.jpg"));
}
else if (carType == "Honda" && yearInput == "2018")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2018Odyssey.jpg"));
}
else if (carType == "Honda" && yearInput == "2019")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2019Odyssey.jpg"));
}
else if (carType == "Honda" && yearInput == "2020")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2020Odyssey.jpg"));
}
else if (carType == "Sienna" && yearInput == "2010")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2010sienna.jpg"));
}
else if (carType == "Sienna" && yearInput == "2011")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2011sienna.jpg"));
}
else if (carType == "Sienna" && yearInput == "2012")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2012sienna.jpg"));
}
else if (carType == "Sienna" && yearInput == "2013")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2013sienna.jpg"));
}
else if (carType == "Sienna" && yearInput == "2014")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2014sienna.jpg"));
}
else if (carType == "Sienna" && yearInput == "2015")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2015sienna.jpg"));
}
else if (carType == "Sienna" && yearInput == "2016")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2016sienna.jpg"));
}
else if (carType == "Sienna" && yearInput == "2017")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2017sienna.jpg"));
}
else if (carType == "Sienna" && yearInput == "2018")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2018sienna.jpg"));
}
else if (carType == "Sienna" && yearInput == "2019")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2019sienna.jpg"));
}
else if (carType == "Sienna" && yearInput == "2020")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2020sienna.jpg"));
}
else if (carType == "Rogue" && yearInput == "2010")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2010Rogue.jpg"));
}
else if (carType == "Rogue" && yearInput == "2011")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2011Rogue.jpg"));
}
else if (carType == "Rogue" && yearInput == "2012")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2012Rogue.jpg"));
}
else if (carType == "Rogue" && yearInput == "2013")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2013Rogue.jpg"));
}
else if (carType == "Rogue" && yearInput == "2014")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2014Rogue.jpg"));
}
else if (carType == "Rogue" && yearInput == "2015")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2015Rogue.jpg"));
}
else if (carType == "Rogue" && yearInput == "2016")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2016Rogue.jpg"));
}
else if (carType == "Rogue" && yearInput == "2017")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2017Rogue.jpg"));
}
else if (carType == "Rogue" && yearInput == "2018")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2018Rogue.jpg"));
}
else if (carType == "Rogue" && yearInput == "2019")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2019Rogue.jpg"));
}
else if (carType == "Sienna" && yearInput == "2020")
{
carImageOutput.Source = new BitmapImage(new Uri($"ms-appx:///Assets/CardImages/2020Rogue.jpg"));
}
}
private void Clearing_Click(object sender, RoutedEventArgs e)
{
ClearUI();
}
}
}
None of this code generates an error the error generates when I try to add the car it says Unable to cast object of 'System.String' to 'Arsalan_Salam_991571527_A2.CarType' into a list view
What I have tried:
The way that I proceeded in solving this problem was doing a lot of research and implementing of those codes which hasn't resolved the problem for me.