Ejemplo n.º 1
0
        public List<PushPinModel> GetAddressList()
        {
            FreeQ_DBEntities context = new FreeQ_DBEntities();

            FreeQ_WS.Classes.FreeQ_DataContext db = new Classes.FreeQ_DataContext();
            List<PushPinModel> ppl = new List<PushPinModel>();
            geoloc l;
            List<string> la = (from a in context.Queue.Where("1 == 1")
                    where a.Queue_Address.Length != 0
                    select a.Queue_Address).ToList<string>();

            foreach (string a in la)
            {
                l = this.GeocodeAddress(a);

                //add the pushpin info
                ppl.Add(new PushPinModel
                {
                    Description = a,
                    Latitude = l.lat,
                    Longitude = l.lon,
                    Title = ""
                });
            }

            db.Dispose();
            context.Dispose();

            return ppl;
        }
Ejemplo n.º 2
0
        public List<Participant> GetParticipants(Guid queueID)
        {
            FreeQ_DBEntities db = new FreeQ_DBEntities();
            List<Ticket> lt;
            List<Participant> lp = new List<Participant>();

            lt = (from q in db.Ticket
                  where q.Ticket_Queue_ID == queueID
                  orderby q.Ticket_CreationDate
                  select q).ToList<Ticket>();

            foreach (Ticket t in lt)
            {
                Participant nP = new Participant();
                nP.CreationDate = t.Ticket_CreationDate;
                nP.Email = t.Ticket_Email;
                nP.TicketIncrement = t.Ticket_Increment;
                nP.Password = t.Ticket_Password;
                nP.State = t.Ticket_State.Ticket_State_Name;

                lp.Add(nP);
            }

            return lp;
        }
Ejemplo n.º 3
0
        public Queue GetQueue(FreeQ_DBEntities db, Guid queueID)
        {
            Queue queue = null;

            try
            {
                queue = (from q in db.Queue
                         where q.Queue_ID == queueID
                         select q).First<Queue>();
            }
            catch { }

            return queue;
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 5
0
        public Ticket GetTicket(FreeQ_DBEntities db, Guid ticketID)
        {
            Ticket ticket = null;

            try
            {
                ticket = (from q in db.Ticket
                          where q.Ticket_ID == ticketID
                          select q).First<Ticket>();
            }
            catch { }

            return ticket;
        }
Ejemplo n.º 6
0
        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 { }
        }
Ejemplo n.º 7
0
        public Ticket GetTicket(long universalIncrement)
        {
            Ticket ticket = null;

            try
            {
                FreeQ_DBEntities db = new FreeQ_DBEntities();

                ticket = (from q in db.Ticket
                          where q.Ticket_UniversalIncrement == universalIncrement
                          select q).First<Ticket>();
            }
            catch { }

            return ticket;
        }
Ejemplo n.º 8
0
        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;
        }
Ejemplo n.º 9
0
        public Queue GetQueue(Guid queueID)
        {
            FreeQ_DBEntities db = new FreeQ_DBEntities();

            return GetQueue(db, queueID);
        }
Ejemplo n.º 10
0
        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 { }
        }
Ejemplo n.º 11
0
        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;
            }
        }
Ejemplo n.º 12
0
        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;
        }
Ejemplo n.º 13
0
        public List<Queue> GetQueues(Guid userID)
        {
            FreeQ_DBEntities db = new FreeQ_DBEntities();

            List<Queue> queues = new List<Queue>();

            return (from q in db.Queue
                    where q.Queue_UserID == userID
                    select q).ToList<Queue>();
        }
Ejemplo n.º 14
0
        public Ticket GetTicket(Guid ticketID)
        {
            FreeQ_DBEntities db = new FreeQ_DBEntities();

            return this.GetTicket(db, ticketID);
        }
Ejemplo n.º 15
0
        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();
        }