Advertisement
Guest User

Untitled

a guest
May 22nd, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.64 KB | None | 0 0
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12.  
  13. namespace RentCar
  14. {
  15. public partial class AdminView : Form
  16. {
  17. DefaultView _parent;
  18. private List<Car> database;
  19. int _rowIndex = -1;
  20.  
  21. public AdminView(DefaultView parent)
  22. {
  23. this._parent = parent;
  24. this._parent.Hide();
  25. InitializeComponent();
  26. }
  27.  
  28. public bool addCar(Car value)
  29. {
  30. try
  31. {
  32. database.Add(value);
  33. }
  34. catch (Exception ex)
  35. {
  36. return false;
  37. }
  38.  
  39. return true;
  40. }
  41.  
  42. public bool changeCar(Car value, int index)
  43. {
  44. try
  45. {
  46. database[index] = value;
  47. }
  48. catch (Exception ex)
  49. {
  50. return false;
  51. }
  52. return true;
  53.  
  54. }
  55.  
  56. public List<Car> getDb()
  57. {
  58. return this.database;
  59. }
  60.  
  61. private void dataGridCars_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
  62. {
  63. e.PaintParts &= ~DataGridViewPaintParts.Focus;
  64. }
  65.  
  66. private void AdminView_Load(object sender, EventArgs e)
  67. {
  68. dataGridCars.ColumnCount = 9;
  69.  
  70. dataGridCars.Columns[0].Name = "#";
  71. dataGridCars.Columns[1].Name = "Марка";
  72. dataGridCars.Columns[2].Name = "Модель";
  73. dataGridCars.Columns[3].Name = "Тип кузова";
  74. dataGridCars.Columns[4].Name = "Цвет";
  75. dataGridCars.Columns[5].Name = "Стоимость (за день)";
  76. dataGridCars.Columns[6].Name = "Состояние";
  77. dataGridCars.Columns[7].Name = "Срок аренды (в днях)";
  78. dataGridCars.Columns[8].Name = "Арендовал";
  79.  
  80. downloadDatabase();
  81. renderGrid();
  82. dataGridCars.AllowUserToAddRows = false;
  83. dataGridCars.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
  84. dataGridCars.MultiSelect = false;
  85. dataGridCars.RowPrePaint += new DataGridViewRowPrePaintEventHandler(dataGridCars_RowPrePaint);
  86.  
  87.  
  88. }
  89.  
  90. public void renderGrid()
  91. {
  92. dataGridCars.Rows.Clear();
  93. int count = 0;
  94. foreach (var item in database)
  95. {
  96.  
  97. 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 });
  98. }
  99. }
  100.  
  101. private void downloadDatabase()
  102. {
  103. string path = $"{Directory.GetCurrentDirectory()}/base.json";
  104.  
  105.  
  106. if (!File.Exists(path))
  107. {
  108. // Create a file to write to.
  109. string[] createText = { "" };
  110. File.WriteAllLines(path, createText);
  111. }
  112.  
  113.  
  114. string[] readText = File.ReadAllLines(path);
  115. database = JsonConvert.DeserializeObject<List<Car>>(String.Join("", readText));
  116.  
  117. }
  118.  
  119. private void CloseHandle(object sender, FormClosedEventArgs e)
  120. {
  121.  
  122. }
  123.  
  124. private void tableData_SelectedIndexChanged(object sender, EventArgs e)
  125. {
  126.  
  127. }
  128.  
  129. private void dataGridCars_CellContentClick(object sender, DataGridViewCellEventArgs e)
  130. {
  131.  
  132. }
  133.  
  134.  
  135. private void IndexHandler(object sender, DataGridViewCellEventArgs e)
  136. {
  137. if (e.RowIndex == -1) return;
  138. int.TryParse(dataGridCars.Rows[e.RowIndex].Cells[0].Value.ToString(), out _rowIndex);
  139. }
  140.  
  141. private void dataGridCars_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
  142. {
  143.  
  144. }
  145.  
  146. private void CloseHandler(object sender, FormClosedEventArgs e)
  147. {
  148. string path = $"{Directory.GetCurrentDirectory()}/base.json";
  149.  
  150. File.WriteAllLines(path, new string[] { JsonConvert.SerializeObject(database) });
  151.  
  152. this._parent.Show();
  153.  
  154. }
  155.  
  156. private void deleteBtn_Click(object sender, EventArgs e)
  157. {
  158. if (dataGridCars.SelectedRows.Count == 0)
  159. {
  160. MessageBox.Show("Выберите строку!", "Ошибка", MessageBoxButtons.OK);
  161. return;
  162. }
  163. DialogResult dialogResult = MessageBox.Show($"Вы уверены что хотите удалить выбранный автомобиль?", "Удаление", MessageBoxButtons.YesNo);
  164. if (dialogResult == DialogResult.Yes)
  165. {
  166. database.Remove(database[_rowIndex]);
  167. renderGrid();
  168. }
  169.  
  170. }
  171.  
  172. private void button1_Click(object sender, EventArgs e)
  173. {
  174. AddChangeView wnd = new AddChangeView(this, null,true, 0);
  175. wnd.Show();
  176. }
  177.  
  178. private void button2_Click(object sender, EventArgs e)
  179. {
  180. if (_rowIndex == -1) {
  181. MessageBox.Show($"Выберите машину", "Ошибка", MessageBoxButtons.OK);
  182. }
  183. AddChangeView wnd = new AddChangeView(this, database[_rowIndex], false, _rowIndex);
  184. wnd.Show();
  185. }
  186. }
  187. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement