public static bool AlreadyRegistered(int counter)
 {
     using (var q = new QueeuingEntities())
     {
         return(q.Counters.Any(x => x.CounterNumber == counter));
     }
 }
Beispiel #2
0
 private void ShowNumbersForm_Load(object sender, EventArgs e)
 {
     using (var q = new QueeuingEntities())
     {
         fillTable(q.Ques.Where(x => x.Status == 0));
     }
 }
Beispiel #3
0
        /// <summary>
        /// processes the messages relayed by clients
        /// </summary>
        /// <param name="n"></param>
        void processNotification(string n)
        {
            int nc;

            if (int.TryParse(n, out nc))
            {
                using (var q = new QueeuingEntities())
                {
                    var counter = q.Counters.FirstOrDefault(x => x.CounterNumber == nc);
                    var token   = numbersTable.Controls.Cast <CounterToken>().FirstOrDefault(x => x.Counter == counter.CounterNumber);

                    if (counter.Ques.Any(x => x.Status == 0))
                    {
                        token.Number = "--";
                        return;
                    }

                    var currentNumber = counter.Ques.FirstOrDefault(x => x.Status == 1);
                    token.Number = currentNumber?.TicketCode ?? "--";

                    if (currentNumber != null)
                    {
                        SpeechManager.AddMessages("Now serving, " + currentNumber.TicketCode + " at counter " + counter.CounterNumber);
                    }
                }
            }
        }
Beispiel #4
0
        private void Main_Load(object sender, EventArgs e)
        {
            WindowState       = Properties.Settings.Default.WindowsState ? FormWindowState.Maximized : FormWindowState.Normal;
            checkBox2.Checked = Properties.Settings.Default.AutoHide;

            counterNum = AppStartup.CounterNumber;
            this.Text  = "COUNTER: " + counterNum;

            using (var q = new QueeuingEntities())
            {
                transactionType.Items.AddRange(q.Transactions.Select(x => x.Name).ToArray());

                var c = q.Counters.FirstOrDefault(x => x.CounterNumber == counterNum);
                targetCounter = c;
                targetItem    = c.Transaction;

                counterNumber.Text   = c.CounterNumber.ToString();
                counterNum           = c.CounterNumber;
                transactionType.Text = c.Transaction.Name;
                var num = c.Ques.FirstOrDefault(x => x.Status == 1);
                currentNumberTxt.Text = num?.TicketCode ?? "--";

                currentNumber = num;
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            using (var q = new QueeuingEntities())
            {
                if (!q.Counters.Any(x => x.CounterNumber == (int)numericUpDown1.Value))
                {
                    var c = new Counter();
                    // c.IpAddress = label1.Text;
                    c.Transaction   = q.Transactions.FirstOrDefault(x => x.Name == transactions.Text);
                    c.CounterNumber = (int)numericUpDown1.Value;

                    q.Counters.Add(c);
                    q.SaveChanges();
                }
                else
                {
                    var c = q.Counters.FirstOrDefault(x => x.CounterNumber == (int)numericUpDown1.Value);
                    c.Transaction = q.Transactions.FirstOrDefault(x => x.Name == transactions.Text);
                    q.SaveChanges();
                }

                AppStartup.CounterNumber = (int)numericUpDown1.Value;
                DialogResult             = DialogResult.Yes;
                this.Close();
            }
        }
Beispiel #6
0
        void RefreshControls()
        {
            var controls = tableLayoutPanel1.Controls.Cast <TicketToken>().ToArray();

            tableLayoutPanel1.Controls.Clear();

            using (var q = new QueeuingEntities())
            {
                foreach (var i in q.Transactions)
                {
                    var token = new TicketToken();
                    token.Dock        = DockStyle.Fill;
                    token.Transaction = i.Name.ToUpper();

                    foreach (var j in i.Counters)
                    {
                        token.Counters += "COUNTER " + j.CounterNumber + " ";
                    }
                    token.OnSelected += (X, Y) =>
                    {
                        ShowConfirmation(i.Id);
                    };
                    tableLayoutPanel1.Controls.Add(token);
                }
            }
            foreach (var i in controls)
            {
                i.Dispose();
            }
        }
        private void transactionsTable_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 4)
            {
                if (MessageBox.Show("Are you sure want to remove this type of transaction?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
                {
                    return;
                }
                ///get the transaction id in transaction table
                var tId = (int)transactionsTable.SelectedCells[0].Value;

                using (var q = new QueeuingEntities())
                {
                    ///get the reference of transaction in the model
                    var t = q.Transactions.FirstOrDefault(x => x.Id == tId);
                    ///if found in model, then remove
                    if (t != null)
                    {
                        q.Transactions.Remove(t);
                        q.SaveChanges();
                    }
                }
                ///remove the entry in the table
                transactionsTable.Rows.RemoveAt(e.RowIndex);
                changesMade = true;
            }
        }
 private void Main_Load(object sender, EventArgs e)
 {
     using (var q = new QueeuingEntities())
     {
         transactions.Items.AddRange(q.Transactions.Select(x => x.Name).ToArray());
         transactions.SelectedIndex = 0;
     }
 }
Beispiel #9
0
        private void nextNumber_Click(object sender, EventArgs e)
        {
            using (var q = new QueeuingEntities())
            {
                var counter = q.Counters.FirstOrDefault(x => x.CounterNumber == counterNum);

                if (currentNumber != null)
                {
                    Console.WriteLine("remove");
                    var cnum = q.Ques?.FirstOrDefault(x => x.Id == currentNumber.Id);
                    if (cnum != null)
                    {
                        cnum.Status = 2;
                    }
                }

                IQueryable <Que> numbers = null;

                if (checkBox1.Checked)
                {
                    numbers = q.Ques.Where(x => x.Transaction.Id == targetItem.Id && x.Status == 0 && x.Priority);
                    if (numbers.Count() == 0)
                    {
                        numbers = q.Ques.Where(x => x.Transaction.Id == targetItem.Id && x.Status == 0);
                    }
                }
                else
                {
                    numbers = q.Ques.Where(x => x.Transaction.Id == targetItem.Id && x.Status == 0);
                }

                if (numbers.Count() == 0)
                {
                    q.SaveChanges();
                    currentNumberTxt.Text = "--";
                    sendMessage();
                    MessageBox.Show("Numbers for this particular transaction is depleted. Choose other transactions.", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                Que next = numbers.First();
                currentNumber = next;
                next.Counter  = counter;
                next.Status   = 1;

                q.SaveChanges();

                currentNumberTxt.Text = next.TicketCode;
                sendMessage();
            }

            if (checkBox2.Checked)
            {
                WindowState = FormWindowState.Minimized;
            }
        }
Beispiel #10
0
 private void button2_Click(object sender, EventArgs e)
 {
     using (var q = new QueeuingEntities())
     {
         var counter = q.Counters.FirstOrDefault(x => x.CounterNumber == counterNum);
         q.Counters.Remove(counter);
         q.SaveChanges();
     }
     this.Close();
 }
Beispiel #11
0
 private void transactionType_SelectedIndexChanged(object sender, EventArgs e)
 {
     using (var q = new QueeuingEntities())
     {
         targetItem = q.Transactions.FirstOrDefault(x => x.Name == transactionType.Text);
         var c = q.Counters.FirstOrDefault(x => x.CounterNumber == counterNum);
         c.Transaction = targetItem;
         q.SaveChanges();
     }
 }
 private void SkippedNumbers_Load(object sender, EventArgs e)
 {
     using (var q = new QueeuingEntities())
     {
         var qs = q.Ques.Where(x => x.CounterId == counterId && x.Status == 3);
         foreach (var i in qs)
         {
             dataGridView1.Rows.Add(i.Id, i.TicketCode, i.Transaction.Name);
         }
     }
 }
Beispiel #13
0
 void ShowConfirmation(int id)
 {
     using (var ticketCon = new TicketConfirmationForm())
     {
         using (var q = new QueeuingEntities())
         {
             ticketCon.targetTransaction = q.Transactions.FirstOrDefault(x => x.Id == id);
             ticketCon.Number            = ticketCon.targetTransaction.CurrentNumber + 1;
         }
         ticketCon.ShowDialog();
     }
 }
        void LoadValues()
        {
            transactionsTable.Rows.Clear();

            using (var q = new QueeuingEntities())
            {
                foreach (var i in q.Transactions)
                {
                    transactionsTable.Rows.Add(i.Id,
                                               i.Name,
                                               i.Prefix,
                                               i.Details,
                                               "Delete");
                }
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            using (var q = new QueeuingEntities())
            {
                var t = new Transaction();
                t.Name          = nameTxt.Text.Trim();
                t.Prefix        = prefTxt.Text.Trim();
                t.Details       = detTxt.Text.Trim();
                t.CurrentNumber = 0;

                q.Transactions.Add(t);
                q.SaveChanges();
            }
            ClearTextBoxes();
            changesMade = true;
        }
Beispiel #16
0
        private void skip_Click(object sender, EventArgs e)
        {
            if (currentNumber == null)
            {
                return;
            }

            using (var q = new QueeuingEntities())
            {
                var n = q.Ques.FirstOrDefault(x => x.Id == currentNumber.Id);
                n.Status = (int)NumberStatus.skipped;
                q.SaveChanges();
            }
            currentNumberTxt.Text = "--";
            currentNumber         = null;
            sendMessage();
        }
Beispiel #17
0
        private void Skipped_SkipSelect(object sender, int e)
        {
            //throw new NotImplementedException();
            using (var q = new QueeuingEntities())
            {
                if (currentNumber != null)
                {
                    var c = q.Ques.FirstOrDefault(x => x.Id == currentNumber.Id);
                    c.Status = (int)NumberStatus.done;
                }
                var skipped = q.Ques.FirstOrDefault(x => x.Id == e);
                currentNumber         = skipped;
                currentNumberTxt.Text = skipped.TicketCode;
                skipped.Status        = (int)NumberStatus.active;

                sendMessage();
                q.SaveChanges();
            }
        }
Beispiel #18
0
        /// <summary>
        /// instantiates tokens for display
        /// </summary>
        void populateTokens()
        {
            using (var q = new QueeuingEntities())
            {
                foreach (var i in q.Counters.OrderBy(x => x.CounterNumber))
                {
                    ///creates the token
                    var token = new CounterToken();
                    token.Dock    = DockStyle.Fill;
                    token.Counter = i.CounterNumber;

                    ///finds the active number corresponding the current counter on the loop
                    var currentNumber = i.Ques.FirstOrDefault(x => x.Status == 1);

                    ///if nothing found put __ for empty number
                    token.Number = currentNumber?.TicketCode ?? "--";
                    ///then add to the table
                    numbersTable.Controls.Add(token);
                }
            }
        }
Beispiel #19
0
        private void Main_Load(object sender, EventArgs e)
        {
            using (var q = new QueeuingEntities())
            {
                foreach (var i in q.Transactions)
                {
                    var token = new TicketToken();
                    token.Dock        = DockStyle.Fill;
                    token.Transaction = i.Name.ToUpper();

                    foreach (var j in i.Counters)
                    {
                        token.Counters += "COUNTER " + j.CounterNumber + " ";
                    }
                    token.OnSelected += (X, Y) =>
                    {
                        ShowConfirmation(i.Id);
                    };
                    //flowLayoutPanel1.Controls.Add(token);
                    tableLayoutPanel1.Controls.Add(token);
                }
            }
        }
        private void confirmBtn_Click(object sender, EventArgs e)
        {
            using (var q = new QueeuingEntities())
            {
                var newQue = new Que();
                newQue.TransactionId = targetTransaction.Id;
                newQue.Priority      = isPrio.Checked;
                newQue.Status        = 0;
                newQue.TicketCode    = number.Text;

                var t = q.Transactions.FirstOrDefault(x => x.Id == targetTransaction.Id);
                t.CurrentNumber = Number;

                q.Ques.Add(newQue);
                q.SaveChanges();

                RNumber   = newQue.TicketCode;
                RCategory = newQue.Transaction.Name;
            }
            ///Print number
            document.Print();
            this.Close();
        }
Beispiel #21
0
        private void clearBtn_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Are you sure you want clear the number in Queue and reset all numbers to 1?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
            {
                return;
            }
            using (var q = new QueeuingEntities())
            {
                foreach (var i in q.Transactions)
                {
                    i.CurrentNumber = 0;
                }

                q.Ques.RemoveRange(q.Ques);
                q.SaveChanges();
            }

            var token = numbersTable.Controls.Cast <CounterToken>();

            foreach (var i in token)
            {
                i.Number = "--";
            }
        }