Пример #1
0
 private void lstViewOwner_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     try
     {
         if (lstViewOwner.SelectedItems.Count != 0)
         {
             btUpdate.IsEnabled = true;
             btDelete.IsEnabled = true;
             btManage.IsEnabled = true;
             Owner curentOwner = (Owner)lstViewOwner.SelectedItem;
             using (var ctx = new CarsOwnerDbContext())
             {
                 Owner selectedOwner = (from o in ctx.Owners where o.OwnerId == curentOwner.OwnerId select o).FirstOrDefault <Owner>();
                 tbName.Text  = selectedOwner.Name;
                 image.Source = (ImageSource)((new ImageSourceConverter()).ConvertFrom(selectedOwner.Photo));  //WPF ImageSourceConverter class, not ImageConverter which is for WinForms
                 tbImage.Text = string.Empty;
             }
         }
         else
         {
             resetAndRefresh();
         }
     }
     catch (SqlException ex)
     {
         MessageBox.Show(" ERROR Select Owner: " + ex.Message, "Error Information");
     }
 }
Пример #2
0
 private void btUpdate_Click(object sender, RoutedEventArgs e)
 {
     if (lstViewOwner.SelectedItems.Count != 1)
     {
         MessageBox.Show("Please choose just one item to update", "Information");
         return;
     }
     try
     {
         Owner curentOwner = (Owner)lstViewOwner.SelectedItem;
         using (var ctx = new CarsOwnerDbContext())
         {
             Owner toUpdate = (from o in ctx.Owners where o.OwnerId == curentOwner.OwnerId select o).FirstOrDefault <Owner>();
             if (toUpdate != null)
             {
                 toUpdate.Name = tbName.Text;
                 if (!string.IsNullOrEmpty(imageLocation))
                 {
                     toUpdate.Photo = File.ReadAllBytes(imageLocation);
                 }
                 ctx.SaveChanges();
                 MessageBox.Show("Owner Updated");
                 resetAndRefresh();
             }
             else
             {
                 MessageBox.Show("Record to update not found");
             }
         }
     }
     catch (Exception ex) when(ex is IOException || ex is FileNotFoundException || ex is SqlException)
     {
         MessageBox.Show(" ERROR Update Owner: " + ex.Message, "Error Information");
     }
 }
Пример #3
0
 private void btAdd_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         if (string.IsNullOrEmpty(tbName.Text) || string.IsNullOrEmpty(imageLocation))
         {
             MessageBox.Show("Please input Name and choose image");
             return;
         }
         byte[] image    = File.ReadAllBytes(imageLocation);
         Owner  newOwner = new Owner {
             Name = tbName.Text, Photo = image
         };
         using (var ctx = new CarsOwnerDbContext())
         {
             ctx.Owners.Add(newOwner);
             ctx.SaveChanges();
             MessageBox.Show("Owner Added");
             resetAndRefresh();
         }
     }
     catch (Exception ex) when(ex is IOException || ex is FileNotFoundException || ex is SqlException)
     {
         MessageBox.Show("Error adding Owner to database:\n" + ex.Message, "Error Information");
     }
 }
Пример #4
0
 private void btUpdate_Click(object sender, RoutedEventArgs e)
 {
     if (lstViewCar.SelectedItems.Count != 1)
     {
         MessageBox.Show("Please choose just one item to update", "Information");
         return;
     }
     try
     {
         Car currentCar = (Car)lstViewCar.SelectedItem;
         using (var ctx = new CarsOwnerDbContext())
         {
             Car toUpdate = ctx.Cars.Include("Owner").Where(c => c.CarId == currentCar.CarId).FirstOrDefault <Car>();
             if (toUpdate != null)
             {
                 toUpdate.MakeModel = tbModel.Text;
                 ctx.SaveChanges();
                 MessageBox.Show("Car Updated");
                 resetAndRefresh(currentOwner);
             }
             else
             {
                 MessageBox.Show("Record to update not found");
             }
         }
     }
     catch (SqlException ex)
     {
         MessageBox.Show(" ERROR Update Owner: " + ex.Message, "Error Information");
     }
 }
Пример #5
0
 private void btAdd_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         if (string.IsNullOrEmpty(tbModel.Text))
         {
             MessageBox.Show("Please input Model");
             return;
         }
         Car newCar = new Car {
             MakeModel = tbModel.Text, OwnerId = currentOwner.OwnerId
         };
         using (var ctx = new CarsOwnerDbContext())
         {
             ctx.Cars.Add(newCar);
             currentOwner.CarsInGarage.Add(newCar);
             ctx.SaveChanges();
             MessageBox.Show("Car Added");
             resetAndRefresh(currentOwner);
         }
     }
     catch (SqlException ex)
     {
         MessageBox.Show(" ERROR Select Car: " + ex.Message, "Error Information");
     }
 }
Пример #6
0
 private void lstViewCar_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     try
     {
         if (lstViewCar.SelectedItems.Count != 0)
         {
             btUpdate.IsEnabled = true;
             btDelete.IsEnabled = true;
             Car currentCar = (Car)lstViewCar.SelectedItem;
             using (var ctx = new CarsOwnerDbContext())
             {
                 Car selectedCar = (from c in ctx.Cars where c.CarId == currentCar.CarId select c).FirstOrDefault <Car>();
                 tbModel.Text = selectedCar.MakeModel;
             }
         }
         else
         {
             resetAndRefresh(currentOwner);
         }
     }
     catch (SqlException ex)
     {
         MessageBox.Show(" ERROR Select Car: " + ex.Message, "Error Information");
     }
 }
Пример #7
0
 private void resetAndRefresh(Owner owner)
 {
     tbOwnerName.Text   = owner.Name;
     tbModel.Text       = string.Empty;
     btDelete.IsEnabled = false;
     btUpdate.IsEnabled = false;
     using (var ctx = new CarsOwnerDbContext())
     {
         lstViewCar.ItemsSource = (from c in ctx.Cars.Include("Owner") where (c.OwnerId == owner.OwnerId) select c).ToList <Car>();
     }
 }
Пример #8
0
 private void resetAndRefresh()
 {
     tbName.Text        = string.Empty;
     imageLocation      = string.Empty;
     image.Source       = null;
     tbImage.Text       = "Click to select image";
     btUpdate.IsEnabled = false;
     btDelete.IsEnabled = false;
     btManage.IsEnabled = false;
     using (var ctx = new CarsOwnerDbContext())
     {
         lstViewOwner.ItemsSource = ctx.Owners.Include("CarsInGarage").ToList <Owner>();
     }
     lstViewOwner.Items.Refresh();
 }
Пример #9
0
        private void btDelete_Click(object sender, RoutedEventArgs e)
        {
            if (lstViewCar.SelectedItems.Count != 1)
            {
                MessageBox.Show("Please choose just one item to delete", "Information");
                return;
            }
            MessageBoxResult messageBoxResult = MessageBox.Show("Are you sure to delete?", "Delete Confirmation", System.Windows.MessageBoxButton.YesNo);

            try
            {
                if (messageBoxResult == MessageBoxResult.Yes)
                {
                    Car currentCar = (Car)lstViewCar.SelectedItem;

                    using (var ctx = new CarsOwnerDbContext())
                    {
                        Car toDelete = ctx.Cars.Include("Owner").Where(c => c.CarId == currentCar.CarId).FirstOrDefault <Car>();
                        if (toDelete != null)
                        {
                            ctx.Cars.Remove(toDelete);
                            ctx.SaveChanges();
                            MessageBox.Show("Car Delete");
                            resetAndRefresh(currentOwner);
                        }
                        else
                        {
                            MessageBox.Show("Record to update not found");
                        }
                    }
                }
            }
            catch (SqlException ex)
            {
                MessageBox.Show(" ERROR Update Owner: " + ex.Message, "Error Information");
            }
        }