コード例 #1
0
 private void OK_Click(object sender, RoutedEventArgs e)
 {
     VideoDevice.Visibility = Visibility.Collapsed;
     BoxName.Focus();
 }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
        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();
        }