public Q Get(string id)
        {
            var qbase = new QBase("https://qcue-live.firebaseio.com");
            var queue = qbase.GetQueueByShortCode(id);

            return(queue);
        }
        // GET: http://www.qcue.me/api/incoming_sms?to=447860033153&from=441234567890&content=Hello+World&msg_id=AB_12345
        public HttpResponseMessage Get([FromUri] IncomingSmsMessage message)
        {
            Trace.TraceInformation("Message: {0}", message);

            /*
             * if (this.ModelState.IsValid)
             * {
             *  Trace.TraceInformation("Message: {0}", message);
             *  return Request.CreateResponse(HttpStatusCode.BadRequest, this.ModelState);
             * }
             */

            var qbase = new QBase("https://qcue-live.firebaseio.com");
            var user  = qbase.GetUserByMobile(message.From);

            // this.EnsureUserIsKnown(message, user);

            if (this.IsUpdateUserMessage(message))
            {
                this.UpdateUser(message, qbase, user);
            }
            else
            {
                this.QueueUser(message, qbase, user);
            }

            var response = this.Request.CreateResponse(HttpStatusCode.OK);

            return(response);
        }
Exemple #3
0
        public User Get(string id)
        {
            var qbase = new QBase("https://qcue-live.firebaseio.com");

            var user = qbase.GetUserByMobile(id);

            return(user);
        }
        public void Return_All_Users()
        {
            var qbase = new QBase("https://qcue-live.firebaseio.com");

            Dictionary<string, User> users = qbase.GetAllUsers();

            Assert.IsNotNull(users);
            Assert.IsTrue(users.Count > 0);
        }
        public void Return_All_Users()
        {
            var qbase = new QBase("https://qcue-live.firebaseio.com");

            Dictionary <string, User> users = qbase.GetAllUsers();

            Assert.IsNotNull(users);
            Assert.IsTrue(users.Count > 0);
        }
        public void Returns_All_Queues()
        {
            var qbase = new QBase("https://qcue-live.firebaseio.com");

            Dictionary <string, Q> queues = qbase.GetAllQueues();

            Assert.IsNotNull(queues);
            Assert.IsTrue(queues.Count > 0);
        }
        public void Returns_Users_In_Queue()
        {
            var qbase = new QBase("https://qcue-test.firebaseio.com");

            var users = qbase.GetUsersInQueue("b555e232-6756-4816-89fe-f6f690e8ab5b");

            Assert.IsNotNull(users);
            Assert.IsTrue(users.Count > 0);
        }
        public void Returns_All_Queues()
        {
            var qbase = new QBase("https://qcue-live.firebaseio.com");

            Dictionary<string, Q> queues = qbase.GetAllQueues();

            Assert.IsNotNull(queues);
            Assert.IsTrue(queues.Count > 0);
        }
        public void Returns_User_For_MobileNumber()
        {
            string mobile = "4455523456789";
            var qbase = new QBase("https://qcue-live.firebaseio.com");

            User user = qbase.GetUserByMobile(mobile);

            Assert.IsNotNull(user);
            Assert.AreEqual(mobile, user.mobile);
        }
Exemple #10
0
        public void Returns_User_For_MobileNumber()
        {
            string mobile = "4455523456789";
            var    qbase  = new QBase("https://qcue-live.firebaseio.com");

            User user = qbase.GetUserByMobile(mobile);

            Assert.IsNotNull(user);
            Assert.AreEqual(mobile, user.mobile);
        }
Exemple #11
0
        public void Anonymous_User_Is_Added()
        {
            var qbase = new QBase("https://qcue-live.firebaseio.com");

            var user = qbase.AddAnonymousUser("449999999999");

            Assert.IsNotNull(user);
            Assert.IsNotNull(user.userId);
            Assert.IsNotNull(user.fullName);
            Assert.IsNotNull(user.mobile);
        }
        private void UpdateUser(IncomingSmsMessage message, QBase qbase, User user)
        {
            string fullName = message.Content.Substring(NameTag.Length).Trim();

            user.fullName = fullName;
            user.status   = "registered";

            qbase.UpdateUser(user);

            Trace.TraceInformation(
                "Updated user.fulName for \"{0}\" to \"{1}\"", user.userId, user.fullName);
        }
Exemple #13
0
        public void Returns_Q_For_ShortCode()
        {
            string shortCode = "HELI";

            var qbase = new QBase("https://qcue-live.firebaseio.com");

            Q q = qbase.GetQueueByShortCode(shortCode);

            Assert.IsNotNull(q);
            Assert.IsTrue(!String.IsNullOrWhiteSpace(q.name));
            Assert.AreEqual(shortCode, q.shortCode);
        }
        public void Returns_Q_For_ShortCode()
        {
            string shortCode = "HELI";

            var qbase = new QBase("https://qcue-live.firebaseio.com");

            Q q = qbase.GetQueueByShortCode(shortCode);

            Assert.IsNotNull(q);
            Assert.IsTrue(!String.IsNullOrWhiteSpace(q.name));
            Assert.AreEqual(shortCode, q.shortCode);
        }
        public void Adds_User_To_Queue()
        {
            var qbase = new QBase("https://qcue-live.firebaseio.com");

            Q q = qbase.GetQueueByShortCode("HELI");
            User user = qbase.GetUserByMobile("4455523456789");

            qbase.AddUserToQueue(q.queueId, new QUser
            {
                userId = user.userId,
                status = "waiting"
            });
        }
Exemple #16
0
        public void User_Is_Updated()
        {
            var qbase = new QBase("https://qcue-live.firebaseio.com");

            var user = new User
            {
                userId   = "0e5d2d51-2bf7-4c1e-9d1a-952710f70725",
                fullName = "Alice Whyte",
                mobile   = "4455523456789"
            };

            qbase.UpdateUser(user);
        }
Exemple #17
0
        public void Adds_User_To_Queue()
        {
            var qbase = new QBase("https://qcue-live.firebaseio.com");

            Q    q    = qbase.GetQueueByShortCode("HELI");
            User user = qbase.GetUserByMobile("4455523456789");

            qbase.AddUserToQueue(q.queueId, new QUser
            {
                userId = user.userId,
                status = "waiting"
            });
        }
Exemple #18
0
        public void Adds_Sms_Task()
        {
            var smsTask = new SmsTask
            {
                smsTaskId = Convert.ToString(Guid.NewGuid()),
                task      = "sms",
                payload   = new SmsTaskPayload
                {
                    mobile  = "4455523456789",
                    message = "Hello+World."
                }
            };

            var qbase = new QBase("https://qcue-live.firebaseio.com");

            qbase.AddTask(smsTask);
        }
        private void QueueUser(IncomingSmsMessage message, QBase qbase, User user)
        {
            var q = qbase.GetQueueByShortCode(message.Content);

            this.EnsureQueueIsKnown(message, q);

            string status = null;

            if (user == null)
            {
                user = qbase.AddAnonymousUser(message.From);
                // TODO: status = "registering";
                status = "joined";
            }
            else
            {
                /*
                 * var usersInQueue = qbase.GetUsersInQueue(q.queueId);
                 *
                 * if (usersInQueue.Count(each => each.userId == user.userId) != 0)
                 * {
                 *  string warningMessage = String.Format(
                 *      "User \"{0}\" is already in queue \"{1}\". User will not be added again.",
                 *      user.userId,
                 *      q.queueId);
                 *
                 *  Trace.TraceWarning(warningMessage);
                 *  return;
                 * }
                 */

                status = "joined";
            }

            qbase.AddUserToQueue(q.queueId, new QUser
            {
                userId = user.userId,
                status = status
            });
        }
 public AMultipleChoice( QBase question )
     : base(question)
 {
     _choices = new List<Choice>();
 }
Exemple #21
0
 public ABinary( QBase question )
     : base(question)
 {
 }
 public AMultipleChoice(QBase question)
     : base(question)
 {
     _choices = new List <Choice>();
 }
Exemple #23
0
 public QMultipleChoice(Form form, string title, bool isRequired, QBase parent)
     : base(form, title, parent)
 {
     _choices = new List <Choice>();
 }
 public AFreeText( QBase question )
     : base(question)
 {
 }
        public void Adds_Sms_Task()
        {
            var smsTask = new SmsTask
            {
                smsTaskId = Convert.ToString(Guid.NewGuid()),
                task = "sms",
                payload = new SmsTaskPayload
                {
                    mobile = "4455523456789",
                    message = "Hello+World."                  
                }
            };

            var qbase = new QBase("https://qcue-live.firebaseio.com");

            qbase.AddTask(smsTask);
        }
 public ABinary(QBase question)
     : base(question)
 {
 }
Exemple #27
0
 public AFreeText(QBase question)
     : base(question)
 {
 }
 public QMultipleChoice( Form form, string title, bool isRequired, QBase parent )
     : base(form, title, parent)
 {
     _choices = new List<Choice>();
 }
Exemple #29
0
 public QComposite(Form form, string title, bool isRequired, QBase parent)
     : base(form, title, parent)
 {
 }
Exemple #30
0
 public QFreeText(Form form, string title, bool isRequired, QBase parent)
     : base(form, title, parent)
 {
 }
        public void Anonymous_User_Is_Added()
        {
            var qbase = new QBase("https://qcue-live.firebaseio.com");

            var user = qbase.AddAnonymousUser("449999999999");

            Assert.IsNotNull(user);
            Assert.IsNotNull(user.userId);
            Assert.IsNotNull(user.fullName);
            Assert.IsNotNull(user.mobile);
        }
 public QComposite( Form form, string title, bool isRequired, QBase parent )
     : base(form, title, parent)
 {
 }
        public void User_Is_Updated()
        {
            var qbase = new QBase("https://qcue-live.firebaseio.com");

            var user = new User
            {
                userId = "0e5d2d51-2bf7-4c1e-9d1a-952710f70725",
                fullName = "Alice Whyte",
                mobile = "4455523456789"
            };

            qbase.UpdateUser(user);
        }
Exemple #34
0
 public QRoot(Form form, string title, bool isRequired, QBase parent)
     : base(form, title, parent)
 {
 }
        public void Returns_Users_In_Queue()
        {
            var qbase = new QBase("https://qcue-test.firebaseio.com");

            var users = qbase.GetUsersInQueue("b555e232-6756-4816-89fe-f6f690e8ab5b");

            Assert.IsNotNull(users);
            Assert.IsTrue(users.Count > 0);
        }
 public QBinary(Form form, string title, bool isRequired, QBase parent)
     : base(form, title, parent)
 {
 }
 public ABase CreateAnswerFor( QBase question )
 {
     ABase a = question.CreateAnswer( _form );
     Answers[question] = a;
     return a;
 }
Exemple #38
0
 public ABase( QBase question )
 {
     _question = question;
     _creationTime = DateTime.UtcNow;
 }
 public ABase FindAnswerFor( QBase question )
 {
     return _answers[question];
 }