Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace RentCar
- {
- public partial class AdminView : Form
- {
- DefaultView _parent;
- private List<Car> database;
- int _rowIndex = -1;
- public AdminView(DefaultView parent)
- {
- this._parent = parent;
- this._parent.Hide();
- InitializeComponent();
- }
- public bool addCar(Car value)
- {
- try
- {
- database.Add(value);
- }
- catch (Exception ex)
- {
- return false;
- }
- return true;
- }
- public bool changeCar(Car value, int index)
- {
- try
- {
- database[index] = value;
- }
- catch (Exception ex)
- {
- return false;
- }
- return true;
- }
- public List<Car> getDb()
- {
- return this.database;
- }
- private void dataGridCars_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
- {
- e.PaintParts &= ~DataGridViewPaintParts.Focus;
- }
- private void AdminView_Load(object sender, EventArgs e)
- {
- dataGridCars.ColumnCount = 9;
- dataGridCars.Columns[0].Name = "#";
- dataGridCars.Columns[1].Name = "Марка";
- dataGridCars.Columns[2].Name = "Модель";
- dataGridCars.Columns[3].Name = "Тип кузова";
- dataGridCars.Columns[4].Name = "Цвет";
- dataGridCars.Columns[5].Name = "Стоимость (за день)";
- dataGridCars.Columns[6].Name = "Состояние";
- dataGridCars.Columns[7].Name = "Срок аренды (в днях)";
- dataGridCars.Columns[8].Name = "Арендовал";
- downloadDatabase();
- renderGrid();
- dataGridCars.AllowUserToAddRows = false;
- dataGridCars.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
- dataGridCars.MultiSelect = false;
- dataGridCars.RowPrePaint += new DataGridViewRowPrePaintEventHandler(dataGridCars_RowPrePaint);
- }
- public void renderGrid()
- {
- dataGridCars.Rows.Clear();
- int count = 0;
- foreach (var item in database)
- {
- dataGridCars.Rows.Add(new string[] { $"{count++}", item.brand, item.model, item.bodyType, item.color, $"{item.price}", item.rented?"Арендована" : "Свободна", item.expires != 0 ? $"{item.expires}":"", item.owner });
- }
- }
- private void downloadDatabase()
- {
- string path = $"{Directory.GetCurrentDirectory()}/base.json";
- if (!File.Exists(path))
- {
- // Create a file to write to.
- string[] createText = { "" };
- File.WriteAllLines(path, createText);
- }
- string[] readText = File.ReadAllLines(path);
- database = JsonConvert.DeserializeObject<List<Car>>(String.Join("", readText));
- }
- private void CloseHandle(object sender, FormClosedEventArgs e)
- {
- }
- private void tableData_SelectedIndexChanged(object sender, EventArgs e)
- {
- }
- private void dataGridCars_CellContentClick(object sender, DataGridViewCellEventArgs e)
- {
- }
- private void IndexHandler(object sender, DataGridViewCellEventArgs e)
- {
- if (e.RowIndex == -1) return;
- int.TryParse(dataGridCars.Rows[e.RowIndex].Cells[0].Value.ToString(), out _rowIndex);
- }
- private void dataGridCars_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
- {
- }
- private void CloseHandler(object sender, FormClosedEventArgs e)
- {
- string path = $"{Directory.GetCurrentDirectory()}/base.json";
- File.WriteAllLines(path, new string[] { JsonConvert.SerializeObject(database) });
- this._parent.Show();
- }
- private void deleteBtn_Click(object sender, EventArgs e)
- {
- if (dataGridCars.SelectedRows.Count == 0)
- {
- MessageBox.Show("Выберите строку!", "Ошибка", MessageBoxButtons.OK);
- return;
- }
- DialogResult dialogResult = MessageBox.Show($"Вы уверены что хотите удалить выбранный автомобиль?", "Удаление", MessageBoxButtons.YesNo);
- if (dialogResult == DialogResult.Yes)
- {
- database.Remove(database[_rowIndex]);
- renderGrid();
- }
- }
- private void button1_Click(object sender, EventArgs e)
- {
- AddChangeView wnd = new AddChangeView(this, null,true, 0);
- wnd.Show();
- }
- private void button2_Click(object sender, EventArgs e)
- {
- if (_rowIndex == -1) {
- MessageBox.Show($"Выберите машину", "Ошибка", MessageBoxButtons.OK);
- }
- AddChangeView wnd = new AddChangeView(this, database[_rowIndex], false, _rowIndex);
- wnd.Show();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement