Beispiel #1
0
        // Удаляет запись о проживании
        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);
                }
            }
        }
Beispiel #2
0
        /// <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);
            }
        }
Beispiel #3
0
 /// <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);
     }
 }
Beispiel #4
0
        /// <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);
                }
            }
        }
Beispiel #5
0
        // Удаляет выбранного жителя
        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;
                }
            }
        }
Beispiel #6
0
        // Сохраняет изменения о проживании
        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);
                }
            }
        }
Beispiel #7
0
        // Заселяет жителя
        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);
                }
            }
        }