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); }
public static AccountCard CreateEmpty(int parkingSpace) //метод создания пустой учетной карты { AccountCard emptyCard = new AccountCard(parkingSpace, " ", " ", " ", " "); emptyCard.parkingSpacePaid = false; emptyCard.paymentDate = DateTime.MinValue; return(emptyCard); }
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; } } }
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; }
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); }
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(); //обновление таблицы }
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); }
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"); }