コード例 #1
0
ファイル: FormMain.cs プロジェクト: MoHTuK/CourseWork
        private bool changeCellData(int spaceNumber) //метод для задания значений строки таблицы. Значения берутся из полей формы
        {
            //проверки на корректность вводимых данных
            if (surname.Text.Length == 0 || !isWord((string)surname.Text))
            {
                debugLog.AppendText("Некорректное значение поля: Фамилия\r\n");
            }
            else if (name.Text.Length == 0 || !isWord((string)name.Text))
            {
                debugLog.AppendText("Некорректное значение поля: Имя\r\n");
            }
            else if (lastname.Text.Length == 0 || !isWord((string)lastname.Text))
            {
                debugLog.AppendText("Некорректное значение поля: Отчество\r\n");
            }
            else if (carBrand.Text.Length == 0)
            {
                debugLog.AppendText("Некорректное значение поля: Автомобиль\r\n");
            }
            else //если все поля имеют корректные значения, присваиваем строке таблицы значения
            {
                AccountCard card = new AccountCard(spaceNumber, name.Text, surname.Text, lastname.Text, carBrand.Text);
                insertTableRow(card);

                debugLog.Clear();
                debugLog.AppendText("Данные занесены в таблицу\r\n");
                dataSaved = false;
                return(true);
            }
            return(false);
        }
コード例 #2
0
        public static AccountCard CreateEmpty(int parkingSpace) //метод создания пустой учетной карты
        {
            AccountCard emptyCard = new AccountCard(parkingSpace, " ", " ", " ", " ");

            emptyCard.parkingSpacePaid = false;
            emptyCard.paymentDate      = DateTime.MinValue;
            return(emptyCard);
        }
コード例 #3
0
ファイル: FormMain.cs プロジェクト: MoHTuK/CourseWork
 private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) //событие нажатия на поля таблицы
 {
     if (!loged)                                                                         //проверка наличия доступа
     {
         logIn();
         return;
     }
     if (e.RowIndex >= 0)
     {
         if (e.ColumnIndex == 6) //событие нажатия на кнопку удаления строки в таблице
         {
             if (MessageBox.Show("Стереть данные?", "Парковочное место №" + (e.RowIndex + 1), MessageBoxButtons.YesNo) == DialogResult.Yes)
             {
                 insertTableRow(AccountCard.CreateEmpty(e.RowIndex + 1));
                 debugLog.AppendText("Данные стерты (Парковочное место " + (e.RowIndex + 1) + ")\r\n");
                 dataSaved = false;
             }
             else
             {
                 debugLog.AppendText("Отмена перезаписи\r\n");
             }
         }
         else if (e.ColumnIndex == 3 && isWord((string)dataGridView1[1, e.RowIndex].Value)) //событие изменения отметки о наличии автомобиля на стоянке
         {
             if (cardList[e.RowIndex].carParked)
             {
                 cardList[e.RowIndex].carParked = false;
                 dataGridView1[e.ColumnIndex, e.RowIndex].Value = "";
             }
             else
             {
                 cardList[e.RowIndex].carParked = true;
                 dataGridView1[e.ColumnIndex, e.RowIndex].Value = "\u2713";
             }
             dataSaved = false;
         }
         else if (e.ColumnIndex == 4 && isWord((string)dataGridView1[1, e.RowIndex].Value)) //событие изменения отметки о наличии оплаты за текущий месяц
         {
             if (cardList[e.RowIndex].parkingSpacePaid)
             {
                 cardList[e.RowIndex].parkingSpacePaid          = false;
                 dataGridView1[e.ColumnIndex, e.RowIndex].Value = "";
             }
             else
             {
                 cardList[e.RowIndex].parkingSpacePaid          = true;
                 dataGridView1[e.ColumnIndex, e.RowIndex].Value = "\u2713";
                 cardList[e.RowIndex].paymentDate   = DateTime.Today;
                 dataGridView1[5, e.RowIndex].Value = DateTime.Today.ToShortDateString();
             }
             dataSaved = false;
         }
     }
 }
コード例 #4
0
ファイル: FormMain.cs プロジェクト: MoHTuK/CourseWork
        private void insertTableRow(AccountCard card) //метод для замещения старой строки таблицы новой строкой
        {
            cardList.RemoveAt(card.parkingSpaceNumber - 1);
            cardList.Insert(card.parkingSpaceNumber - 1, card);

            dataGridView1.Rows.RemoveAt(card.parkingSpaceNumber - 1);
            dataGridView1.Rows.Insert
            (
                card.parkingSpaceNumber - 1,
                card.parkingSpaceNumber,
                card.getFullName(),
                card.carBrand,
                card.carParked ? "\u2713" : "",
                card.parkingSpacePaid ? "\u2713" : "",
                card.getPaymentDate()
            );
            dataSaved = false;
        }
コード例 #5
0
        public static AccountCard readFromFile(BinaryReader input)   //метод чтения карты из файла
        {
            int         space      = input.ReadInt32();              //считывание парковочного места
            AccountCard readenCard = AccountCard.CreateEmpty(space); //создание пустой карты для дальнейшей записи информации

            //чтение основных данных
            readenCard.fullName[0]      = input.ReadString();
            readenCard.fullName[1]      = input.ReadString();
            readenCard.fullName[2]      = input.ReadString();
            readenCard.carBrand         = input.ReadString();
            readenCard.carParked        = input.ReadBoolean();
            readenCard.parkingSpacePaid = input.ReadBoolean();
            //чтение даты оплаты
            int pDay   = input.ReadInt32();
            int pMonth = input.ReadInt32();
            int pYear  = input.ReadInt32();

            readenCard.paymentDate = new DateTime(pYear, pMonth, pDay);

            return(readenCard);
        }
コード例 #6
0
ファイル: FormMain.cs プロジェクト: MoHTuK/CourseWork
        private void FormMain_Load(object sender, EventArgs e)
        {
            if (loadData()) //проверка наличия файла с данными базы
            {
            }
            else //если подходящий файл не найден, вызвать форму создания новой базы
            {
                this.Hide();
                Form enterForm = new FormEnter();
                enterForm.ShowDialog();
                int spaceCounter = cardList.Count;

                while (cardList.Count < spaceAmount) //заполнение таблицы пустыми полями, которые в дальнейшем можно будет заполнить
                {
                    AccountCard emptyCard = AccountCard.CreateEmpty(spaceCounter + 1);
                    cardList.Add(emptyCard);
                    spaceCounter++;
                }
            }
            updateTable(); //обновление таблицы
        }
コード例 #7
0
ファイル: FormMain.cs プロジェクト: MoHTuK/CourseWork
        public bool loadData()  //загрузка данных из файла
        {
            FileStream   fileStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read);
            BinaryReader reader     = new BinaryReader(fileStream);

            //если невозможно считать, останавливаем выполнение метода
            try
            {
                password = reader.ReadString();
            }
            catch
            {
                reader.Close();
                fileStream.Close();
                return(false);
            }

            if (password == null || !FormEnter.isPassword(password))
            {
                reader.Close();
                fileStream.Close();
                return(false);
            }

            //дальнейшее считывание
            spaceAmount = reader.ReadInt32();
            cardList    = new List <AccountCard>(spaceAmount);
            int i = 0;

            while (fileStream.CanRead && i < spaceAmount)
            {
                cardList.Add(AccountCard.readFromFile(reader));
                i++;
            }

            reader.Close();
            fileStream.Close();

            return(true);
        }
コード例 #8
0
ファイル: FormMain.cs プロジェクト: MoHTuK/CourseWork
 private void DeleteBySurname_Click(object sender, System.EventArgs e) //кнопка удаления по фамилии
 {
     if (!loged)                                                       //проверка наличия доступа
     {
         logIn();
         return;
     }
     if (!isWord(surname.Text)) //проверка правильности введенной фамилии
     {
         debugLog.AppendText("Некорректное значение поля: Фамилия\r\n");
         return;
     }
     foreach (var card in cardList)
     {
         if (card.getSurname() == surname.Text)
         {
             //попытка удаления первого найденного поля с указанной фамилией
             if (MessageBox.Show("Удалить данные?", "Парковочное место №" + card.parkingSpaceNumber, MessageBoxButtons.YesNo) == DialogResult.Yes)
             {
                 insertTableRow(AccountCard.CreateEmpty(card.parkingSpaceNumber));
                 debugLog.AppendText("Данные перезаписаны (Парковочное место " + card.parkingSpaceNumber + ")\r\n");
                 dataSaved = false;
                 return;
             }
             //если пользователь отменил удаление, показать диалог о продолжении поиска
             else if (MessageBox.Show("Продолжить поиск?", "Поиск других совпадений", MessageBoxButtons.YesNo) == DialogResult.Yes)
             {
                 debugLog.AppendText("Поиск дургих совпадений...\r\n");
             }
             else
             {
                 return;
             }
         }
     }
     debugLog.AppendText("Поиск не дал результатов\r\n");
 }