123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- using Microsoft.Win32;
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Media;
- using System.Net;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Navigation;
- using System.Windows.Shapes;
- namespace GasStationCamera
- {
- /// <summary>
- /// Логика взаимодействия для MainWindow.xaml
- /// </summary>
- public partial class MainWindow : Window
- {
- public List<DataFromCamera> dataFromCameras = new List<DataFromCamera>();
- public DataFromCamera TrueCarNumber = new DataFromCamera();
- public bool StartServer = false;
- public MainWindow()
- {
- InitializeComponent();
- GetDataFromCsv();
- }
- public void GetDataFromCsv()
- {
- string[] csv = File.ReadAllLines(Environment.CurrentDirectory + "/Resources/Camera_Load.csv");
- for (int i = 1; i < csv.Length; i++)
- {
- DataFromCamera dataFromCamera = new DataFromCamera();
- string[] column = csv[i].Split(',');
- dataFromCamera.Date = Convert.ToDateTime(column[0]);
- dataFromCamera.Status = Convert.ToBoolean(column[1].ToLower());
- dataFromCamera.CarNumber = column[2];
- dataFromCamera.NameImage = column[3].Substring(1,column[3].Length-2);
- dataFromCameras.Add(dataFromCamera);
- }
- }
- public void CheckNumberCar(string NameImage)
- {
- foreach (var item in dataFromCameras)
- {
- if (item.NameImage == NameImage)
- {
- TxtStateCheckNumber.Text = "Гос. номер распознан: ";
- TxtCarNumber.Text = item.CarNumber;
- BtnConfirm.Visibility = Visibility.Visible;
- TrueCarNumber = item;
- TrueCarNumber.Date = DateTime.Now;
- return;
- }
- }
- TrueCarNumber = TrueCarNumber = new DataFromCamera { CarNumber = "", Date = DateTime.Now, Status = false, NameImage = $"не распознан.{NameImage.Split('.')[1]}" }; ;
- SystemSounds.Asterisk.Play();
- TxtStateCheckNumber.Text = "Гос. не номер распознан. Введите его в ручную: ";
- TbCarkNumber.Visibility = Visibility.Visible;
- BtnConfirm.Visibility = Visibility.Visible;
- }
- public async void StartPostDataOfCamera()
- {
- HttpListener httpListener = new HttpListener();
- httpListener.Prefixes.Add("http://127.0.0.1:7070/getDataFromCamera/");
- httpListener.Start();
- while (StartServer == true)
- {
- HttpListenerContext context = await httpListener.GetContextAsync();
- HttpListenerRequest request = context.Request;
- HttpListenerResponse response = context.Response;
- var Json = JsonConvert.SerializeObject(TrueCarNumber);
- byte[] buffer = Encoding.UTF8.GetBytes(Json);
- response.ContentLength64 = buffer.Length;
- Stream output = response.OutputStream;
- output.Write(buffer, 0, buffer.Length);
- output.Close();
- }
- httpListener.Abort();
- }
- private void BtnConfirm_Click(object sender, RoutedEventArgs e)
- {
- if (TrueCarNumber.CarNumber == "")
- {
- if (string.IsNullOrEmpty(TbCarkNumber.Text))
- {
- MessageBox.Show("Номер не введён", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
- return;
- }
- TrueCarNumber.CarNumber = TbCarkNumber.Text;
- }
- StartServer = true;
- StartPostDataOfCamera();
- MessageBox.Show("Данные отправлены", "Информация", MessageBoxButton.OK, MessageBoxImage.Information);
- }
- private void ImageGrid_MouseDown(object sender, MouseButtonEventArgs e)
- {
- StartServer = false;
- TxtStateCheckNumber.Text = string.Empty;
- TxtCarNumber.Text = string.Empty;
- TbCarkNumber.Visibility = Visibility.Collapsed;
- BtnConfirm.Visibility = Visibility.Collapsed;
- OpenFileDialog openFileDialog = new OpenFileDialog();
- if (openFileDialog.ShowDialog() == true)
- {
- ImgPhoto.Source = new BitmapImage(new Uri(openFileDialog.FileName));
- string NameImage = openFileDialog.SafeFileName;
- CheckNumberCar(NameImage);
- }
- }
- }
- }
|