Exemple #1
0
        private void SaveChangesButton_Click(object sender, EventArgs e)
        {
            try
            {
                #region CarData
                //var carId = PlateNumber_TextBox.Text.Trim();
                var brand                 = Made_TextBox.Text.Trim();
                var model                 = Model_TextBox.Text.Trim();
                var color                 = Color_TextBox.Text.Trim();
                var chassisNumber         = ChassisNumber_TextBox.Text.Trim();
                var engineNumber          = EngineNumber_TextBox.Text.Trim();
                var workingVolumeCubicCm  = WorkingVolumeCubicCm_TextBox.Text.Trim();
                var firstRegistration     = Convert.ToDateTime(FirstDateRegister_DatePicker.Value, CultureInfo.InvariantCulture);
                var firstRegistrationInBG = Convert.ToDateTime(FirstDateRegisterBG_DatePicker.Value, CultureInfo.InvariantCulture);
                var kilometers            = CurrentKilometers_TextBox.Text.Trim();
                var owner                 = OwnerName_TextBox.Text.Trim();
                var egn         = Egn_TextBox.Text.Trim();
                var bulstat     = Bulstat_TextBox.Text.Trim();
                var phoneNumber = PhoneNumber_TextBox.Text.Trim();
                var address     = Address_TextBox.Text.Trim();
                #endregion

                #region CarExtras
                var abs                     = Abs_CheckBox.Checked;
                var asd                     = Asd_CheckBox.Checked;
                var ebs                     = Ebs_CheckBox.Checked;
                var arb                     = Arb_CheckBox.Checked;
                var esp                     = Esp_CheckBox.Checked;
                var fourByFour              = FourByFour_CheckBox.Checked;
                var airConditioning         = AirConditioning_CheckBox.Checked;
                var climatronic             = Climatronic_CheckBox.Checked;
                var hatch                   = Hatch_CheckBox.Checked;
                var alarm                   = Alarm_CheckBox.Checked;
                var immobilizer             = Immobilizer_CheckBox.Checked;
                var centralLocking          = CentralLocking_CheckBox.Checked;
                var electronicGlass         = ElectronicGlass_CheckBox.Checked;
                var electronicMirrors       = ElectronicMirror_CheckBox.Checked;
                var automatic               = Automatic_CheckBox.Checked;
                var electronicPacket        = ElectronicPacket_CheckBox.Checked;
                var steeringWheelHydraulics = SteeringWheelHydraulics_CheckBox.Checked;
                var stereo                  = Stereo_CheckBox.Checked;
                var cdChanger               = CdChanger_CheckBox.Checked;
                var amplifier               = Amplifier_CheckBox.Checked;
                var others                  = Others_TextBox.Text.Trim();
                #endregion

                var sb = new StringBuilder();
                var emptyOrWrongFields = new List <string>();

                if (string.IsNullOrWhiteSpace(brand))
                {
                    emptyOrWrongFields.Add("Марка");
                }
                if (string.IsNullOrWhiteSpace(model))
                {
                    emptyOrWrongFields.Add("Модел");
                }
                //if (string.IsNullOrWhiteSpace(carId))
                //{
                //    emptyOrWrongFields.Add("Регистрационен номер");
                //}
                if (string.IsNullOrWhiteSpace(kilometers))
                {
                    emptyOrWrongFields.Add("Км");
                }
                if (string.IsNullOrWhiteSpace(owner))
                {
                    emptyOrWrongFields.Add("Собственик");
                }

                var fuelType = FuelType.Diesel;
                if (FuelType_Diesel_RadioButton.Checked)
                {
                    fuelType = FuelType.Diesel;
                }
                else if (FuelType_Gasoline_RadioButton.Checked)
                {
                    fuelType = FuelType.Gasoline;
                }
                else if (FuelType_Gas_RadioButton.Checked)
                {
                    fuelType = FuelType.Gasoline;
                }
                else if (FuelType_Methane_RadioButton.Checked)
                {
                    fuelType = FuelType.Methane;
                }
                else
                {
                    emptyOrWrongFields.Add("Вид двигател");
                }

                if (emptyOrWrongFields.Count() > 0)
                {
                    sb.AppendLine("Моля попълнете следните полета: ");
                    sb.AppendLine(string.Join(", ", emptyOrWrongFields.Select(x => x)));

                    MessageBox.Show(sb.ToString());
                    return;
                }

                var brandRegex = new Regex("^([А-Я-а-я]+)$");
                var modelRegex = new Regex("^([А-Я-а-я]+)$");
                var colorRegex = new Regex("^([А-Я-а-я]+)$");
                var workingVolumeCubicCmRegex = new Regex("^[0-9]*$");
                //var plateNumberRegex = new Regex("^[А-Я-а-я]{2}[0-9]{4}[А-Я-а-я]{2}$");
                var kilometersRegex  = new Regex("^([0-9]*)$|^([0-9]* [0-9]*)$");
                var ownerRegex       = new Regex("^(([А-Я-а-я]+)|([А-Я-а-я]+ [А-Я-а-я]+ [А-Я-а-я]+)|[А-Я-а-я]+ [А-Я-а-я]+)$");
                var egnRegex         = new Regex("^[0-9]{10}$");
                var phoneNumberRegex = new Regex("^([0-9]{10})$|([0-9{12}]{12})$");

                if (!brandRegex.IsMatch(brand))
                {
                    emptyOrWrongFields.Add("Марка");
                }
                if (!modelRegex.IsMatch(model))
                {
                    emptyOrWrongFields.Add("Модел");
                }
                if (!colorRegex.IsMatch(color))
                {
                    emptyOrWrongFields.Add("Цвят");
                }
                if (!workingVolumeCubicCmRegex.IsMatch(workingVolumeCubicCm))
                {
                    emptyOrWrongFields.Add("Работен обем куб. см");
                }
                //if (!plateNumberRegex.IsMatch(carId))
                //{
                //    emptyOrWrongFields.Add("Регистрационен номер");
                //}
                if (!kilometersRegex.IsMatch(kilometers))
                {
                    emptyOrWrongFields.Add("Км");
                }
                if (!ownerRegex.IsMatch(owner))
                {
                    emptyOrWrongFields.Add("Собственик");
                }
                if (!egnRegex.IsMatch(egn) && !string.IsNullOrWhiteSpace(egn))
                {
                    emptyOrWrongFields.Add("ЕГН");
                }
                if (!phoneNumberRegex.IsMatch(phoneNumber) && !string.IsNullOrWhiteSpace(phoneNumber))
                {
                    emptyOrWrongFields.Add("Тел");
                }

                if (emptyOrWrongFields.Count() > 0)
                {
                    sb.AppendLine("Моля въведете коректни данни за следните полета: ");
                    sb.AppendLine(string.Join(", ", emptyOrWrongFields.Select(x => x)));

                    MessageBox.Show(sb.ToString());
                    return;
                }

                brand = GlobalMethods.CapitalizeFirstLetter(brand);
                model = GlobalMethods.CapitalizeFirstLetter(model);
                color = GlobalMethods.CapitalizeFirstLetter(color);
                owner = GlobalMethods.CapitalizeOwnerName(owner);

                #region CarData
                //if (Car.Id != carId)
                //{
                //    var oilAndFilters = dbContext.OilAndFilters.Where(x => x.CarId == Car.Id).ToList();
                //    var otherServices = dbContext.OtherServices.Where(x => x.CarId == Car.Id).ToList();
                //    var carExtras = dbContext.CarExtras.FirstOrDefault(x => x.CarId == Car.Id);

                //    oilAndFilters.ForEach(x => x.CarId = carId);
                //    otherServices.ForEach(x => x.CarId = carId);
                //    carExtras.CarId = carId;

                //    Car.Id = carId;
                //}

                Car.Brand                 = brand;
                Car.Model                 = model;
                Car.Color                 = color;
                Car.ChassisNumber         = chassisNumber;
                Car.EngineNumber          = engineNumber;
                Car.FuelType              = fuelType;
                Car.WorkingVolumeCubicCm  = workingVolumeCubicCm;
                Car.FirstRegisterDate     = firstRegistration;
                Car.FirstRegisterDateInBg = firstRegistrationInBG;
                Car.Kilometers            = kilometers;
                Car.Owner                 = owner;
                Car.Egn         = egn;
                Car.Bulstat     = bulstat;
                Car.PhoneNumber = phoneNumber;
                Car.Address     = address;
                #endregion

                #region CarExtras
                Car.CarExtras.Abs                     = abs;
                Car.CarExtras.Asd                     = asd;
                Car.CarExtras.Ebs                     = ebs;
                Car.CarExtras.Arb                     = arb;
                Car.CarExtras.Esp                     = esp;
                Car.CarExtras.FourByFour              = fourByFour;
                Car.CarExtras.AirConditioning         = airConditioning;
                Car.CarExtras.Climatronic             = climatronic;
                Car.CarExtras.Hatch                   = hatch;
                Car.CarExtras.Alarm                   = alarm;
                Car.CarExtras.Immobilizer             = immobilizer;
                Car.CarExtras.CentralLocking          = centralLocking;
                Car.CarExtras.ElectronicGlass         = electronicGlass;
                Car.CarExtras.ElectronicMirrors       = electronicMirrors;
                Car.CarExtras.Automatic               = automatic;
                Car.CarExtras.ElectronicPacket        = electronicPacket;
                Car.CarExtras.SteeringWheelHydraulics = steeringWheelHydraulics;
                Car.CarExtras.Stereo                  = stereo;
                Car.CarExtras.CdChanger               = cdChanger;
                Car.CarExtras.Amplifier               = amplifier;
                Car.CarExtras.Other                   = others;
                #endregion

                dbContext.SaveChanges();

                MessageBox.Show("Успешно направени промени.");
            }
            catch (Exception ex)
            {
                logger.WriteLine($"SearchServiceBookFormOne.SaveChangesButton_Click: {ex}");
                MessageBox.Show("Възникна неочаквана грешка!");
            }
        }
        private void Open_CreateNewServiceBookFormTwo_Button_Click(object sender, EventArgs e)
        {
            try
            {
                #region CarData
                var carId                 = PlateNumber_TextBox.Text.Trim(); //Регистрационен номер
                var brand                 = Made_TextBox.Text.Trim();
                var model                 = Model_TextBox.Text.Trim();
                var color                 = Color_TextBox.Text.Trim();
                var chassisNumber         = ChassisNumber_TextBox.Text.Trim();
                var engineNumber          = EngineNumber_TextBox.Text.Trim();
                var workingVolumeCubicCm  = WorkingVolumeCubicCm_TextBox.Text.Trim();
                var firstRegistration     = Convert.ToDateTime(FirstDateRegister_DatePicker.Value, CultureInfo.InvariantCulture);
                var firstRegistrationInBG = Convert.ToDateTime(FirstDateRegisterBG_DatePicker.Value, CultureInfo.InvariantCulture);
                var kilometers            = CurrentKilometers_TextBox.Text.Trim();
                var owner                 = OwnerName_TextBox.Text.Trim();
                var egn         = Egn_TextBox.Text.Trim();
                var bulstat     = Bulstat_TextBox.Text.Trim();
                var phoneNumber = PhoneNumber_TextBox.Text.Trim();
                var address     = Address_TextBox.Text.Trim();
                #endregion

                #region CarExtras
                var abs                     = Abs_CheckBox.Checked;
                var asd                     = Asd_CheckBox.Checked;
                var ebs                     = Ebs_CheckBox.Checked;
                var arb                     = Arb_CheckBox.Checked;
                var esp                     = Esp_CheckBox.Checked;
                var fourByFour              = FourByFour_CheckBox.Checked;
                var airConditioning         = AirConditioning_CheckBox.Checked;
                var climatronic             = Climatronic_CheckBox.Checked;
                var hatch                   = Hatch_CheckBox.Checked;
                var alarm                   = Alarm_CheckBox.Checked;
                var immobilizer             = Immobilizer_CheckBox.Checked;
                var centralLocking          = CentralLocking_CheckBox.Checked;
                var electronicGlass         = ElectronicGlass_CheckBox.Checked;
                var electronicMirrors       = ElectronicMirror_CheckBox.Checked;
                var automatic               = Automatic_CheckBox.Checked;
                var electronicPacket        = ElectronicPacket_CheckBox.Checked;
                var steeringWheelHydraulics = SteeringWheelHydraulics_CheckBox.Checked;
                var stereo                  = Stereo_CheckBox.Checked;
                var cdChanger               = CdChanger_CheckBox.Checked;
                var amplifier               = Amplifier_CheckBox.Checked;
                var others                  = Others_TextBox.Text.Trim();
                #endregion

                var sb = new StringBuilder();
                var emptyOrWrongFields = new List <string>();

                if (string.IsNullOrWhiteSpace(brand))
                {
                    emptyOrWrongFields.Add("Марка");
                }
                if (string.IsNullOrWhiteSpace(model))
                {
                    emptyOrWrongFields.Add("Модел");
                }
                if (string.IsNullOrWhiteSpace(carId))
                {
                    emptyOrWrongFields.Add("Регистрационен номер");
                }
                if (string.IsNullOrWhiteSpace(kilometers))
                {
                    emptyOrWrongFields.Add("Км");
                }
                if (string.IsNullOrWhiteSpace(owner))
                {
                    emptyOrWrongFields.Add("Собственик");
                }

                var fuelType = FuelType.Diesel;
                if (FuelType_Diesel_RadioButton.Checked)
                {
                    fuelType = FuelType.Diesel;
                }
                else if (FuelType_Gasoline_RadioButton.Checked)
                {
                    fuelType = FuelType.Gasoline;
                }
                else if (FuelType_Gas_RadioButton.Checked)
                {
                    fuelType = FuelType.Gasoline;
                }
                else if (FuelType_Methane_RadioButton.Checked)
                {
                    fuelType = FuelType.Methane;
                }
                else
                {
                    emptyOrWrongFields.Add("Вид двигател");
                }

                if (emptyOrWrongFields.Count() > 0)
                {
                    sb.AppendLine("Моля попълнете следните полета: ");
                    sb.AppendLine(string.Join(", ", emptyOrWrongFields.Select(x => x)));

                    MessageBox.Show(sb.ToString());
                    return;
                }

                var brandRegex = new Regex("^([А-Я-а-я]+)$");
                var modelRegex = new Regex("^([А-Я-а-я]+)$");
                var colorRegex = new Regex("^([А-Я-а-я]+)$");
                var workingVolumeCubicCmRegex = new Regex("^[0-9]*$");
                var plateNumberRegex          = new Regex("^[А-Я-а-я]{2}[0-9]{4}[А-Я-а-я]{2}$");
                var kilometersRegex           = new Regex("^([0-9]*)$|^([0-9]* [0-9]*)$");
                var ownerRegex       = new Regex("^(([А-Я-а-я]+)|([А-Я-а-я]+ [А-Я-а-я]+ [А-Я-а-я]+)|[А-Я-а-я]+ [А-Я-а-я]+)$");
                var egnRegex         = new Regex("^[0-9]{10}$");
                var phoneNumberRegex = new Regex("^([0-9]{10})$|([0-9{12}]{12})$");

                if (!brandRegex.IsMatch(brand))
                {
                    emptyOrWrongFields.Add("Марка");
                }
                if (!modelRegex.IsMatch(model))
                {
                    emptyOrWrongFields.Add("Модел");
                }
                if (!colorRegex.IsMatch(color))
                {
                    emptyOrWrongFields.Add("Цвят");
                }
                if (!workingVolumeCubicCmRegex.IsMatch(workingVolumeCubicCm))
                {
                    emptyOrWrongFields.Add("Работен обем куб. см");
                }
                if (!plateNumberRegex.IsMatch(carId))
                {
                    emptyOrWrongFields.Add("Регистрационен номер");
                }
                if (!kilometersRegex.IsMatch(kilometers))
                {
                    emptyOrWrongFields.Add("Км");
                }
                if (!ownerRegex.IsMatch(owner))
                {
                    emptyOrWrongFields.Add("Собственик");
                }
                if (!egnRegex.IsMatch(egn) && !string.IsNullOrWhiteSpace(egn))
                {
                    emptyOrWrongFields.Add("ЕГН");
                }
                if (!phoneNumberRegex.IsMatch(phoneNumber) && !string.IsNullOrWhiteSpace(phoneNumber))
                {
                    emptyOrWrongFields.Add("Тел");
                }

                if (emptyOrWrongFields.Count() > 0)
                {
                    sb.AppendLine("Моля въведете коректни данни за следните полета: ");
                    sb.AppendLine(string.Join(", ", emptyOrWrongFields.Select(x => x)));

                    MessageBox.Show(sb.ToString());
                    return;
                }

                var dbExists = dbContext.Cars.Find(carId);
                if (dbExists != null)
                {
                    MessageBox.Show($"Вече съществува кола с регистрационен номер {carId}. Моля, въведете друг.");
                    return;
                }

                brand = GlobalMethods.CapitalizeFirstLetter(brand);
                model = GlobalMethods.CapitalizeFirstLetter(model);
                color = GlobalMethods.CapitalizeFirstLetter(color);
                owner = GlobalMethods.CapitalizeOwnerName(owner);

                var car       = new Car(carId, brand, model, color, chassisNumber, engineNumber, workingVolumeCubicCm, firstRegistration, firstRegistrationInBG, fuelType, kilometers, owner, egn, bulstat, phoneNumber, address);
                var carExtras = new CarExtras(abs, asd, ebs, esp, fourByFour, airConditioning, climatronic, hatch, alarm, immobilizer, centralLocking, electronicGlass, electronicMirrors, automatic, electronicPacket, steeringWheelHydraulics, stereo, cdChanger, amplifier, others);

                car.CarExtras = carExtras;

                var secondForm = new CreateNewServiceBookFormTwo(car, dbContext, logger);
                secondForm.RefToHomePageForm = this;

                Hide();

                secondForm.Show();
            }
            catch (Exception ex)
            {
                logger.WriteLine($"CreateNewServiceBookFormOne.NextToNewServiceBookFormTwo_Button_Click: {ex}");
                MessageBox.Show("Възникна неочаквана грешка!");
            }
        }