// Удаляет запись о проживании private void deleteLivingButton_Click(object sender, EventArgs e) { DialogResult dialogResult = MessageBox.Show("Вы уверены, что хотите удалить выбранную запись?\n", "Предупреждение", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { try { Int32.TryParse(residentRoomsIdLabel.Text, out int residentRoomsId); if (residentRoomsId == 0) { MessageBox.Show("Выберите запись для удаления."); } else { ResidentRooms residentRooms = db.GetTable <ResidentRooms>().SingleOrDefault(r => r.ResidentRoomsId == residentRoomsId); db.GetTable <ResidentRooms>().DeleteOnSubmit(residentRooms); RoomResidents roomResidents = db.GetTable <RoomResidents>().FirstOrDefault(r => (r.ResidentId == residentId && r.RoomId == residentRooms.RoomId)); db.GetTable <RoomResidents>().DeleteOnSubmit(roomResidents); db.SubmitChanges(); LoadLivingDataGridView(); } } catch (Exception ex) { HistoryRecordsController.WriteExceptionToLogFile(ex, "Ошибка при удалении информации о проживании в deleteLivingButton_Click."); MessageBox.Show("Ошибка при удалении информации о проживании.\nВызвано исключение:" + ex.Message); } } }
/// <summary> /// Запись о заселении/выселении жителя /// </summary> /// <param name="residentRooms">Проживание жителя</param> /// <param name="isSettle">Если true, то заселение, иначе выселение</param> public static void WriteAboutSettlement(ResidentRooms residentRooms, bool isSettle) { string action = isSettle ? "Заселил жителя: " : "Выселил жителя: "; string residentFullName = residentRooms.Resident.Surname + " " + residentRooms.Resident.Name + " " + residentRooms.Resident.Patronymic; action += "\"" + residentFullName + "\". "; action += "Секция: " + residentRooms.Room.SectionNumber + ". Комната: " + residentRooms.Room.Number + ". "; action += isSettle ? "Дата заселения: " + residentRooms.SettlementDate + "." : "Дата выселения: " + residentRooms.DateOfEviction + "."; try { HistoryRecord historyRecord = new HistoryRecord { UserName = HistoryRecordsController.UserName, Action = action, DateOfAction = DateTime.Now }; db.GetTable <HistoryRecord>().InsertOnSubmit(historyRecord); db.SubmitChanges(); } catch (Exception ex) { MessageBox.Show("Ошибка ведения истории!\n" + ex.Message); } }
/// <summary> /// Добавление проката вещи /// </summary> private void RentThing() { try { ResidentRooms residentRooms = db.GetTable <ResidentRooms>() .FirstOrDefault(r => (r.ResidentId == residentId && r.DateOfEviction == null)); string selectedRentName = rentThingsComboBox.SelectedItem.ToString(); RentThing rentThing = db.GetTable <RentThing>().SingleOrDefault(r => r.Name == selectedRentName); ResidentRoomsRentThing residentRoomsRentThing = new ResidentRoomsRentThing { ResidentRoomsId = residentRooms.ResidentRoomsId, RentThingId = rentThing.RentThingId, StartRentDate = startRentDateTimePicker.Value.Date, EndRentDate = endRentDateTimePicker.Value.Date }; db.GetTable <ResidentRoomsRentThing>().InsertOnSubmit(residentRoomsRentThing); db.SubmitChanges(); LoadRentDataGridView(); SystemSounds.Beep.Play(); MessageBox.Show("Прокат успешно добавлен!"); } catch (Exception ex) { SystemSounds.Exclamation.Play(); HistoryRecordsController.WriteExceptionToLogFile(ex, "Ошибка при добавлении проката вещей."); MessageBox.Show("Ошибка проката. Проверьте выбранные данные.\nВызвано исключение: " + ex.Message); } }
/// <summary> /// Отвечает за выселения жителя из комнаты /// </summary> /// <param name="roomId">Идентификатор комнаты</param> /// <param name="residentId">Идентификатор жителя</param> private void EvictResident(int roomId, int residentId) { DialogResult dialogResult = MessageBox.Show("Вы уверены, что хотите выселить данного жителя?\n", "Предупреждение", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { try { Resident resident = db.GetTable <Resident>().FirstOrDefault(r => r.ResidentId == residentId); RoomResidents roomResidents = db.GetTable <RoomResidents>().FirstOrDefault(r => (r.ResidentId == residentId && r.RoomId == roomId)); db.GetTable <RoomResidents>().DeleteOnSubmit(roomResidents); ResidentRooms residentRooms = db.GetTable <ResidentRooms>() .FirstOrDefault(r => (r.ResidentId == residentId && r.RoomId == roomId && r.DateOfEviction == null)); residentRooms.DateOfEviction = DateTime.Now; db.SubmitChanges(); SystemSounds.Beep.Play(); MessageBox.Show("Житель успешно выселен!"); HistoryRecordsController.WriteAboutSettlement(residentRooms, false); } catch (Exception ex) { SystemSounds.Exclamation.Play(); HistoryRecordsController.WriteExceptionToLogFile(ex, "Ошибка при выселении жителя."); MessageBox.Show("Ошибка выселения жителя. \nВызвано исключение: " + ex.Message); } } }
// Удаляет выбранного жителя private void deleteButton_Click(object sender, EventArgs e) { DialogResult dialogResult = MessageBox.Show("Вы уверены, что хотите удалить выбранного жителя?\n", "Предупреждение", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { try { System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor; Int32.TryParse(residentIdLabel.Text, out int residentId); if (residentId == 0) { MessageBox.Show("Выберите жителя"); } else { 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>().FirstOrDefault(r => r.ResidentId == residentId); if (resident2 != null) { dbFromOtherServer.GetTable <Resident>().DeleteOnSubmit(resident2); } Passport passport2 = dbFromOtherServer.GetTable <Passport>().FirstOrDefault(r => (r.PassportId == resident2.PassportId)); if (passport2 != null) { resident2.Passport = passport2; dbFromOtherServer.GetTable <Passport>().DeleteOnSubmit(passport2); } RoomResidents roomResidents2 = dbFromOtherServer.GetTable <RoomResidents>().FirstOrDefault(r => (r.ResidentId == residentId)); if (roomResidents2 != null) { dbFromOtherServer.GetTable <RoomResidents>().DeleteOnSubmit(roomResidents2); } ResidentRooms residentRooms2 = dbFromOtherServer.GetTable <ResidentRooms>() .FirstOrDefault(r => (r.ResidentId == residentId && r.DateOfEviction == null)); if (residentRooms2 != null) { residentRooms2.DateOfEviction = DateTime.Now; } db = new DataContext(sqlConnectionString.ConnectionString); Resident resident = db.GetTable <Resident>().FirstOrDefault(r => r.ResidentId == residentId); if (resident != null) { db.GetTable <Resident>().DeleteOnSubmit(resident); } Passport passport = db.GetTable <Passport>().FirstOrDefault(r => (r.PassportId == resident.PassportId)); if (passport != null) { resident.Passport = passport; db.GetTable <Passport>().DeleteOnSubmit(passport); } RoomResidents roomResidents = db.GetTable <RoomResidents>().FirstOrDefault(r => (r.ResidentId == residentId)); if (roomResidents != null) { db.GetTable <RoomResidents>().DeleteOnSubmit(roomResidents); } ResidentRooms residentRooms = db.GetTable <ResidentRooms>() .FirstOrDefault(r => (r.ResidentId == residentId && r.DateOfEviction == null)); if (residentRooms != null) { residentRooms.DateOfEviction = DateTime.Now; } dbFromOtherServer.SubmitChanges(); db.SubmitChanges(); LoadDataGrid(); HistoryRecordsController.WriteAboutAddDeleteResident(resident, false); } } catch (Exception ex) { HistoryRecordsController.WriteExceptionToLogFile(ex, "Ошибка при удалении жителя в deleteButton_Click."); MessageBox.Show("Ошибка при удалении жителя.\nВызвано исключение: " + ex.Message); } finally { System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default; } } }
// Сохраняет изменения о проживании private void saveLivingButton_Click(object sender, EventArgs e) { if (settlementDateDateTimePicker.Value.Date > dateOfEvictionDateTimePicker.NullableValue()) { SystemSounds.Exclamation.Play(); MessageBox.Show("Дата заселения должна быть раньше даты выселения."); return; } DialogResult dialogResult = MessageBox.Show("Вы уверены, что хотите сохранить изменения?\n", "Предупреждение", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { try { Int32.TryParse(residentRoomsIdLabel.Text, out int residentRoomsId); if (residentRoomsId == 0) { MessageBox.Show("Выберите запись для изменения."); } else { int sectonNumber = Int32.Parse(sectionNumberTextBox.Text); int roomNumber = Int32.Parse(roomNumberTextBox.Text); Room room = db.GetTable <Room>().SingleOrDefault(r => r.SectionNumber == sectonNumber && r.Number == roomNumber); if (room != null) { ResidentRooms residentRooms = db.GetTable <ResidentRooms>().SingleOrDefault(r => r.ResidentRoomsId == residentRoomsId); if (residentRooms.RoomId != room.RoomId) { RoomResidents roomResidents = db.GetTable <RoomResidents>().FirstOrDefault(r => (r.ResidentId == residentId && r.RoomId == residentRooms.RoomId)); db.GetTable <RoomResidents>().DeleteOnSubmit(roomResidents); RoomResidents newRoomResidents = new RoomResidents { RoomId = room.RoomId, ResidentId = residentRooms.ResidentId }; db.GetTable <RoomResidents>().InsertOnSubmit(newRoomResidents); } residentRooms.RoomId = room.RoomId; residentRooms.CashPayment = (bool)((ComboBoxItem)cashPaymentComboBox.SelectedItem).HiddenValue; residentRooms.BedClothes = (bool)((ComboBoxItem)bedClothesComboBox.SelectedItem).HiddenValue; residentRooms.SettlementDate = settlementDateDateTimePicker.Value; residentRooms.DateOfEviction = dateOfEvictionDateTimePicker.NullableValue(); db.SubmitChanges(); SystemSounds.Beep.Play(); MessageBox.Show("Успешно сохранено!"); LoadLivingDataGridView(); } else { MessageBox.Show("Введённой комнаты не существует."); } } } catch (Exception ex) { SystemSounds.Exclamation.Play(); HistoryRecordsController.WriteExceptionToLogFile(ex, "Ошибка при сохранении изменений о проживании в saveLivingButton_Click."); MessageBox.Show("Ошибка при сохранении изменений.\nВызвано исключение:" + ex.Message); } } }
// Заселяет жителя private void settleButton_Click(object sender, EventArgs e) { if (startRentDateTimePicker.Value.Date > endRentDateTimePicker.Value.Date) { SystemSounds.Exclamation.Play(); MessageBox.Show("Нельзя добавить данный прокат. Дата начала проката должна быть раньше даты окончания."); return; } DialogResult dialogResult = MessageBox.Show("Вы уверены, что хотите заселить данного жителя?\n", "Предупреждение", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { try { Int32.TryParse(residentIdLabel.Text, out int residentId); Resident resident = db.GetTable <Resident>().SingleOrDefault(r => r.ResidentId == residentId); var exist = db.GetTable <RoomResidents>().Any(r => r.ResidentId == resident.ResidentId); if (exist) { SystemSounds.Exclamation.Play(); MessageBox.Show("Данный житель уже живет в другой комнате"); } else { RoomResidents roomResidents = new RoomResidents { RoomId = roomId, ResidentId = resident.ResidentId }; db.GetTable <RoomResidents>().InsertOnSubmit(roomResidents); bool isCash = cashRadioButton.Checked ? true : false; ResidentRooms residentRooms = new ResidentRooms { ResidentId = resident.ResidentId, RoomId = roomId, CashPayment = isCash, BedClothes = bedClothesCheckBox.Checked, SettlementDate = settlementDateTimePicker.Value }; db.GetTable <ResidentRooms>().InsertOnSubmit(residentRooms); db.SubmitChanges(); if (isRentCheckBox.Checked) { RentThing rentThing = db.GetTable <RentThing>().SingleOrDefault(r => r.Name == "Телевизор"); ResidentRoomsRentThing residentRoomsRentThing = new ResidentRoomsRentThing { ResidentRoomsId = residentRooms.ResidentRoomsId, RentThingId = rentThing.RentThingId, StartRentDate = startRentDateTimePicker.Value.Date, EndRentDate = endRentDateTimePicker.Value.Date }; db.GetTable <ResidentRoomsRentThing>().InsertOnSubmit(residentRoomsRentThing); } db.SubmitChanges(); HistoryRecordsController.WriteAboutSettlement(residentRooms, true); DialogResult = DialogResult.OK; Close(); } } catch (Exception ex) { SystemSounds.Exclamation.Play(); HistoryRecordsController.WriteExceptionToLogFile(ex, "Ошибка при заселении жителя в settleButton_Click."); MessageBox.Show("Ошибка при заселении жителя.\nВызвано исключение: " + ex.Message); } } }