private void OK_Click(object sender, RoutedEventArgs e) { VideoDevice.Visibility = Visibility.Collapsed; BoxName.Focus(); }
public MainWindow(List <Event> events) { InitializeComponent(); Title = App.AppName + " Check-in"; this.events = events; removeName.Interval = 5000; removeName.Tick += (s, e) => { System.Windows.Application.Current.Dispatcher.Invoke(() => { ResultText.Text = "Bem-vindo!"; removeName.Stop(); }); }; checkQR.Interval = 1000; checkQR.Tick += webCamTimer_Tick; checkQR.Start(); LeftText.Text = "Abra o aplicativo do " + App.AppName + ", toque nos três pontinhos e escolha \"Fazer check-in\""; useDymo = Settings.Default.UseDymo; BoxName.Focus(); BoxName.TextChanged += (s, e) => { if (BoxName.Text.Length > 1) { new System.Threading.Thread(() => { System.Threading.Thread.CurrentThread.IsBackground = true; List <Person> names = new List <Person>(); string query = ""; string text = ""; System.Windows.Application.Current.Dispatcher.Invoke(() => { text = BoxName.Text.Replace("\"", "\"\""); }); foreach (Event _event in events) { if (!query.Equals("")) { query += " UNION ALL "; } query += "SELECT * FROM event_" + _event.Id + " WHERE member_name LIKE '%" + text + "%'"; } var member = App.objConn.Prepare(query); while (member.Step() == SQLiteResult.ROW) { int id = int.Parse(member[1].ToString()); if (!names.Any(p => p.Id == id)) { Person p = new Person() { Id = id, Name = member[2].ToString() }; names.Add(p); } } System.Windows.Application.Current.Dispatcher.Invoke(() => { ListName.ItemsSource = names; ListName.Visibility = Visibility.Visible; }); }).Start(); } else { ListName.Visibility = Visibility.Hidden; } }; ListName.SelectionChanged += (s, e) => { if (ListName.SelectedIndex != -1) { Person p = e.AddedItems[0] as Person; DoCheckin(p.Id); BoxName.Text = ""; ListName.Visibility = Visibility.Hidden; ListName.SelectedIndex = -1; } }; ComboBox.ItemsSource = webCameraControl.GetVideoCaptureDevices(); if (ComboBox.Items.Count > 0) { ComboBox.SelectedItem = ComboBox.Items[0]; } if (useDymo) { SetupDymo(); } }
private void DoCheckin(int member_id) { if (!printedIds.Contains(member_id)) { printedIds.Add(member_id); string query = ""; foreach (Event _event in events) { if (!query.Equals("")) { query += " UNION ALL "; } query += "SELECT * FROM event_" + _event.Id + " WHERE member_id=" + member_id; } var member = App.objConn.Prepare(query); if (member.ColumnCount != 0) { ResultText.Text = "QR Code não encontrado neste evento"; } string name = ""; string now = DateTime.Now.ToString("HH:mm:ss dd/MM/yyyy"); while (member.Step() == SQLiteResult.ROW) { int id = int.Parse(member[0].ToString()); name = member[2].ToString(); latestName = name; ResultText.Text = name; foreach (Event _event in events) { App.objConn.Prepare("UPDATE event_" + _event.Id + " SET checked=1, date='" + now + "' WHERE member_id=" + member_id).Step(); } } if (!name.Equals("") && useDymo) { PrintCode(member_id, name, now); } } else { if (!BoxName.Text.Equals(latestName)) { ResultText.Text = "Check-in realizado anteriormente"; } } BoxName.Text = ""; ListName.Visibility = Visibility.Hidden; ListName.SelectedIndex = -1; BoxName.Focus(); removeName.Stop(); removeName.Start(); }