private void buttonVehicleDelete_Click(object sender, EventArgs e)
 {
     if (listBoxVehicle.SelectedItem != null)
     {
         if (listBoxVehicle.SelectedItem is Vehicle vehicle)
         {
             if (DBController.TryCheckOpenBookingVehicle(vehicle, out bool result))
             {
                 //If car isn't booked
                 if (!result)
                 {
                     DialogResult dialog = Feedback.AskVehicleDelete();
                     if (dialog == DialogResult.Yes)
                     {
                         //Try delete vehicle
                         if (DBController.TryDeleteVehicle(vehicle))
                         {
                             if (!DBController.TryCheckVehicleTypeIsNeeded(vehicle))
                             {
                                 Feedback.ErrorDatabaseVehicleTypeDelete();
                             }
                             Feedback.SuccessVehicleDelete();
                             FormController.MainView.UpdateVehicleList();
                         }
                         else
                         {
                             Feedback.ErrorDatabaseVehicleDelete();
                         }
                     }
                 }
                 else                         //If car is booked
                 {
                     Feedback.ErrorDatabaseBookedVehicleDelete();
                 }
             }
             else                     //If check fails
             {
                 Feedback.ErrorDatabaseConnection();
             }
         }
         else                 //If selected item isn't a vehicle
         {
             Feedback.ErrorNoValidSelectedItem();
         }
     }
     else             //If selected item is null
     {
         Feedback.ErrorNoSelectedItem();
     }
 }
Пример #2
0
        private void buttonAccept_Click(object sender, EventArgs e)
        {
            if (test())
            {
                #region check
                if (!Double.TryParse(txtMileage.Text, out double mileage))
                {
                    Feedback.ErrorConvertMileage();
                    return;
                }

                if (!Double.TryParse(txtTankFilling.Text, out double tankFilling))
                {
                    Feedback.ErrorConvertTankFilling();
                    return;
                }

                if (!Double.TryParse(txtPower.Text, out double power))
                {
                    Feedback.ErrorConvertPower();
                    return;
                }

                if (!Double.TryParse(txtMaxTankFilling.Text, out double maxTankFilling))
                {
                    Feedback.ErrorConvertMaxTankFilling();
                    return;
                }

                if (!Double.TryParse(txtPrice.Text, out double basicPrice))
                {
                    Feedback.ErrorConvertBasicPrice();
                    return;
                }

                if (!Double.TryParse(txtPriceKilo.Text, out double pricePerKilometre))
                {
                    Feedback.ErrorConvertPriceKilo();
                    return;
                }

                if (!Double.TryParse(txtPriceMin.Text, out double pricePerMinute))
                {
                    Feedback.ErrorConvertPriceMin();
                    return;
                }

                if (!Double.TryParse(txtPosX.Text, out double posX))
                {
                    Feedback.ErrorConvertLocationX();
                    return;
                }

                if (!Double.TryParse(txtPosY.Text, out double posY))
                {
                    Feedback.ErrorConvertLocationY();
                    return;
                }

                if (!Double.TryParse(txtFuelCon.Text, out double fuelConsumption))
                {
                    Feedback.ErrorConvertFuelCon();
                    return;
                }

                if (!DateTime.TryParse(txtReg.Text, out DateTime registration))
                {
                    Feedback.ErrorConvertRegi();
                    return;
                }

                if (!Int32.TryParse(txtConstructionYear.Text, out int constructionYear))
                {
                    Feedback.ErrorConvertConstructionYear();
                    return;
                }

                if (!Int32.TryParse(txtSeats.Text, out int seats))
                {
                    Feedback.ErrorConvertSeats();
                    return;
                }

                if (tankFilling > maxTankFilling)
                {
                    Feedback.ErrorPhysikTankFilling();
                    return;
                }

                if (constructionYear < 1880)
                {
                    Feedback.ErrorConstructionYearTooEarly();
                    return;
                }

                if (constructionYear > DateTime.Today.Year)
                {
                    Feedback.ErrorConstructionYearTooLate();
                    return;
                }

                if (registration.Year < constructionYear)
                {
                    Feedback.ErrorRegiBeforeConstruction();
                    return;
                }

                if (dateTimeLastMaintenance.Value.Year < constructionYear)
                {
                    Feedback.ErrorMaintanceBeforeConstruction();
                    return;
                }

                if (!DBController.TryGetVehicleNumberPlates(out List <string> numberPlates))
                {
                    Feedback.ErrorDatabaseLoadNumberPlates();
                    return;
                }

                if (numberPlates.Contains(txtNumberplate.Text))
                {
                    if (vehicleOld != null)
                    {
                        if (vehicleOld.NumberPlate != txtNumberplate.Text)
                        {
                            Feedback.ErrorNumberPlateAlreadyExist();
                            return;
                        }
                    }
                    else
                    {
                        Feedback.ErrorNumberPlateAlreadyExist();
                        return;
                    }
                }
                #endregion

                Vehicle vehicle = new Vehicle(txtNumberplate.Text, mileage, dateTimeLastMaintenance.Value, tankFilling, new PointD(posX, posY), checkAvailable.Checked, comboBrand.Text, txtModel.Text, (int)Math.Round(power), constructionYear, comboGear.Text, maxTankFilling, basicPrice, pricePerKilometre, pricePerMinute, registration, seats, comboFuel.SelectedItem.ToString(), fuelConsumption, checkAirConditioner.Checked, checkCruiseControl.Checked, checkRadio.Checked, checkBluetooth.Checked, checkUSB.Checked, checkCDPlayer.Checked, checkNavigationDevice.Checked, checkABS.Checked, checkESP.Checked, checkHeatedSeat.Checked, checkWinter.Checked, checkSmoker.Checked);

                if (vehicleOld == null)
                {
                    if (!DBController.TryAddVehicle(vehicle))
                    {
                        Feedback.ErrorDatabaseVehicleAdd();
                        return;
                    }
                    Feedback.SuccessVehicleAdd();
                }
                else
                {
                    if (!DBController.TryUpdateVehicleInDB(vehicle, vehicleOld))
                    {
                        Feedback.ErrorDatabaseVehicleEdit();
                        return;
                    }

                    if (!DBController.TryCheckVehicleTypeIsNeeded(vehicleOld))
                    {
                        Feedback.ErrorDatabaseVehicleTypeDelete();
                    }

                    Feedback.SuccessVehicleEdit();
                }
                ((EditDataView)Parent).Close();
                FormController.MainView.UpdateVehicleList();
            }
        }