コード例 #1
0
ファイル: ResidentForm.cs プロジェクト: Glazic/Dormitory
        // Сохранение информации о жителе
        private void saveButton_Click(object sender, EventArgs e)
        {
            DialogResult dialogResult = MessageBox.Show("Вы уверены, что хотите сохранить изменения?\n",
                                                        "Предупреждение", MessageBoxButtons.YesNo);

            if (dialogResult == DialogResult.Yes)
            {
                if (isAllFieldsValid() == false)
                {
                    return;
                }
                try
                {
                    System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
                    db = new DataContext(sqlConnectionString.ConnectionString);
                    Resident resident       = db.GetTable <Resident>().SingleOrDefault(r => r.ResidentId == residentId);
                    Resident oldResident    = resident.ShallowCopy();
                    int      organizationId = Int32.Parse(organizationIdLabel.Text);
                    resident.Surname      = surnameTextBox.Text;
                    resident.Name         = nameTextBox.Text;
                    resident.Patronymic   = patronymicTextBox.Text;
                    resident.PhoneNumber  = phoneNumberTextBox.Text;
                    resident.Birthday     = birthdayDateTimePicker.NullableValue();
                    resident.Note         = noteTextBox.Text;
                    resident.Organization = db.GetTable <Organization>().SingleOrDefault(r => r.OrganizationId == organizationId);

                    Passport passport = db.GetTable <Passport>().SingleOrDefault(p => p.PassportId == resident.PassportId);
                    oldResident.Passport  = passport.ShallowCopy();
                    passport.Number       = passportNumberTextBox.Text;
                    passport.Series       = passportSeriesTextBox.Text;
                    passport.Registration = passportRegistrationTextBox.Text;
                    passport.DateOfIssue  = passportDateOfIssueDateTimePicker.Value.Date;
                    passport.Authority    = passportAuthorityTextBox.Text;


                    SqlConnectionStringBuilder sConnBForOtherServer = new SqlConnectionStringBuilder()
                    {
                        DataSource     = Properties.Settings.Default.userServer2Name,
                        InitialCatalog = Properties.Settings.Default.userServer2Database,
                        UserID         = sqlConnectionString.UserID,
                        Password       = sqlConnectionString.Password,
                    };
                    DataContext dbFromOtherServer = new DataContext(sConnBForOtherServer.ConnectionString);
                    Resident    resident2         = dbFromOtherServer.GetTable <Resident>().SingleOrDefault(r => r.ResidentId == residentId);
                    resident2.Surname      = surnameTextBox.Text;
                    resident2.Name         = nameTextBox.Text;
                    resident2.Patronymic   = patronymicTextBox.Text;
                    resident2.PhoneNumber  = phoneNumberTextBox.Text;
                    resident2.Birthday     = birthdayDateTimePicker.NullableValue();
                    resident2.Note         = noteTextBox.Text;
                    resident2.Organization = dbFromOtherServer.GetTable <Organization>().SingleOrDefault(r => r.OrganizationId == organizationId);

                    Passport passport2 = dbFromOtherServer.GetTable <Passport>().SingleOrDefault(p => p.PassportId == resident2.PassportId);
                    passport2.Number       = passportNumberTextBox.Text;
                    passport2.Series       = passportSeriesTextBox.Text;
                    passport2.Registration = passportRegistrationTextBox.Text;
                    passport2.DateOfIssue  = passportDateOfIssueDateTimePicker.Value.Date;
                    passport2.Authority    = passportAuthorityTextBox.Text;
                    dbFromOtherServer.SubmitChanges();

                    db.SubmitChanges();
                    SystemSounds.Beep.Play();
                    MessageBox.Show("Успешно сохранено!");

                    HistoryRecordsController.WriteAboutEditResident(oldResident, resident);
                }
                catch (Exception ex)
                {
                    SystemSounds.Exclamation.Play();
                    HistoryRecordsController.WriteExceptionToLogFile(ex, "Ошибка при сохранении изменений жителя.");
                    MessageBox.Show("Ошибка при сохранении изменений. \nВызвано исключение: " + ex.Message);
                }
                finally
                {
                    System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
                }
            }
        }