Files
Petr_PTA25_Proj_02-10/dealer/windows/VehicleDetailWindow.xaml.cs
2026-02-10 15:30:40 +01:00

132 lines
4.2 KiB
C#

using System;
using System.IO;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;
namespace dealer
{
public partial class VehicleDetailWindow : Window
{
private Vehicle vehicle;
private DataManager dataManager;
public bool WasDeleted { get; private set; } = false;
public bool WasEdited { get; private set; } = false;
public VehicleDetailWindow(Vehicle vehicle, DataManager dataManager)
{
InitializeComponent();
this.vehicle = vehicle;
this.dataManager = dataManager;
LoadVehicleDetails();
}
private void LoadVehicleDetails()
{
// SPZ
SpzTextBlock.Text = vehicle.Spz ?? "Nezadano";
// Model
ModelTextBlock.Text = vehicle.Model ?? "Nezadano";
// Barva
ColorTextBlock.Text = vehicle.Barva ?? "Nezadano";
if (!string.IsNullOrEmpty(vehicle.Barva))
{
try
{
var color = (System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString(vehicle.Barva);
ColorPreviewBorder.Background = new SolidColorBrush(color);
}
catch
{
ColorPreviewBorder.Background = System.Windows.Media.Brushes.White;
}
}
// Rok vyroby
YearTextBlock.Text = vehicle.RokVyroby?.ToString() ?? "Nezadano";
// Najete km
if (vehicle.NajeteKm != null)
MileageTextBlock.Text = vehicle.NajeteKm.Value.ToString("N0") + " km";
else
MileageTextBlock.Text = "Nezadano";
// Cena
if (vehicle.Cena != null)
PriceTextBlock.Text = vehicle.Cena.Value.ToString("N0") + " Kc";
else
PriceTextBlock.Text = "Nezadano";
// Fotografie (base64)
if (!string.IsNullOrEmpty(vehicle.Fotografie))
{
try
{
byte[] imageBytes = Convert.FromBase64String(vehicle.Fotografie);
using (var ms = new MemoryStream(imageBytes))
{
var bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.StreamSource = ms;
bitmap.EndInit();
bitmap.Freeze();
VehicleImage.Source = bitmap;
}
VehicleImage.Visibility = Visibility.Visible;
NoPhotoTextBlock.Visibility = Visibility.Collapsed;
}
catch
{
VehicleImage.Visibility = Visibility.Collapsed;
NoPhotoTextBlock.Visibility = Visibility.Visible;
}
}
else
{
VehicleImage.Visibility = Visibility.Collapsed;
NoPhotoTextBlock.Visibility = Visibility.Visible;
}
}
private void DeleteButton_Click(object sender, RoutedEventArgs e)
{
var result = System.Windows.MessageBox.Show(
$"Opravdu chcete smazat vozidlo {vehicle.Model} (SPZ: {vehicle.Spz})?",
"Potvrzeni smazani",
MessageBoxButton.YesNo,
MessageBoxImage.Question);
if (result == MessageBoxResult.Yes)
{
dataManager.RemoveVehicle(vehicle);
dataManager.Save();
WasDeleted = true;
this.Close();
}
}
private void EditButton_Click(object sender, RoutedEventArgs e)
{
var editWindow = new EditVehicleWindow(vehicle, dataManager);
editWindow.ShowDialog();
if (editWindow.WasEdited)
{
WasEdited = true;
LoadVehicleDetails();
}
}
private void CloseButton_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}
}