public Queue CreateQueue(Queue q) { this.Validate(q); q.Queue_CreationDate = DateTime.Now; q.Queue_ID = System.Guid.NewGuid(); FreeQ_DBEntities db = new FreeQ_DBEntities(); db.Queue.AddObject(q); db.SaveChanges(); return q; }
public void DisableQueue(Guid queueID) { Queue queue = null; try { FreeQ_DBEntities db = new FreeQ_DBEntities(); queue = this.GetQueue(db, queueID); queue.Queue_IsActive = false; int result = db.SaveChanges(); } catch { } }
public Ticket GenerateNextTicket(Guid queueID, string email) { Random random = new Random(); Ticket ticket = new Ticket(); HelperClass_Queue hcq = new HelperClass_Queue(); Queue queue = hcq.GetQueue(queueID); try { if (!hcq.IsActive(queue)) throw new Exception("This queue isn't active; no ticket can be created."); ticket.Ticket_ID = System.Guid.NewGuid(); FreeQ_DBEntities db = new FreeQ_DBEntities(); ticket.Ticket_UniversalIncrement = (from q in db.Ticket select q.Ticket_UniversalIncrement).Max() + 1; if (ticket.Ticket_UniversalIncrement == null) ticket.Ticket_UniversalIncrement = ticket.Ticket_Increment + 1; ticket.Ticket_Increment = queue.Queue_Next_Increment; ticket.Ticket_Password = random.Next(1000).ToString(); ticket.Ticket_Queue_ID = queueID; ticket.Ticket_Email = email; ticket.Ticket_StateID = 1; ticket.Ticket_CreationDate = DateTime.Now; db.Ticket.AddObject(ticket); int result = db.SaveChanges(); hcq.NextIncrement(ticket.Ticket_ID, queueID); } catch { } return ticket; }
public void ValidateCurrentTicket(Guid queueID, bool cancel) { Queue queue = null; try { FreeQ_DBEntities db = new FreeQ_DBEntities(); queue = this.GetQueue(db, queueID); HelperClass_Ticket hct = new HelperClass_Ticket(); HelperClass_Queue hcq = new HelperClass_Queue(); if (!hcq.IsActive(queue)) throw new Exception("This queue isn't active; you can't handle tickets anymore."); if (queue.Queue_Current_Ticket_ID == null) { List<Ticket> tickets = (from t in db.Ticket where t.Ticket_Queue_ID == queueID orderby t.Ticket_ID select t).ToList<Ticket>(); if (tickets.Count > 0) queue.Queue_Current_Ticket_ID = tickets[0].Ticket_ID; } else { Ticket t = hct.GetTicket(db, (Guid)queue.Queue_Current_Ticket_ID); if (t == null) return; if (cancel) t.Ticket_StateID = 3; else t.Ticket_StateID = 2; List<Ticket> tickets = (from ti in db.Ticket where ti.Ticket_Queue_ID == queueID && ti.Ticket_UniversalIncrement > t.Ticket_UniversalIncrement orderby ti.Ticket_ID select ti). ToList<Ticket>(); if (tickets.Count > 0) queue.Queue_Current_Ticket_ID = tickets[0].Ticket_ID; } int result = db.SaveChanges(); // Send alert Ticket ct = hct.GetTicket(db, (Guid)queue.Queue_Current_Ticket_ID); List<Ticket> nextTicket = (from ti in db.Ticket where ti.Ticket_Queue_ID == queueID && ti.Ticket_UniversalIncrement == ct.Ticket_UniversalIncrement + 2 orderby ti.Ticket_ID select ti).ToList<Ticket>(); if (nextTicket.Count == 1 && !String.IsNullOrEmpty(nextTicket[0].Ticket_Email)) { HelperClass_Email.SendEmail(nextTicket[0].Ticket_Email, "Quddle - it is almost your turn!", "Hey, only 2 persons are in front of you ; it is time to go..."); } } catch { } }
public bool UpdateQueue(Queue q) { this.Validate(q); FreeQ_DBEntities db = new FreeQ_DBEntities(); try { Queue queue = db.Queue.Single<Queue>(p => p.Queue_ID == q.Queue_ID); queue.Queue_Name = q.Queue_Name; queue.Queue_Next_Increment = q.Queue_Next_Increment; queue.Queue_Address = q.Queue_Address; queue.Queue_IsActive = q.Queue_IsActive; db.SaveChanges(); return true; } catch { return false; } }
public Queue NextIncrement(Guid currentTicketID, Guid queueID) { Queue queue = null; try { FreeQ_DBEntities db = new FreeQ_DBEntities(); queue = this.GetQueue(db, queueID); if (queue.Queue_ResetAtMidnight && queue.Queue_Date_LastIncrement < DateTime.Now.Date) queue.Queue_Next_Increment = 1; else queue.Queue_Next_Increment += 1; if (queue.Queue_ResetAtMaxReached && queue.Queue_Next_Increment == queue.Queue_MaxLimit) queue.Queue_Next_Increment = 1; queue.Queue_Date_LastIncrement = DateTime.Now.Date; if (queue.Queue_Current_Ticket_ID == null) queue.Queue_Current_Ticket_ID = currentTicketID; int result = db.SaveChanges(); } catch { } return queue; }
public void UpdateAlertEmail(Guid ticketID, string alertEmail) { FreeQ_DBEntities db = new FreeQ_DBEntities(); Ticket t = this.GetTicket(db, ticketID); t.Ticket_Email = alertEmail; db.SaveChanges(); }