public async Task Update(WaitListViewModel model)
        {
            var basketContent = new StringContent(JsonConvert.SerializeObject(model), System.Text.Encoding.UTF8, "application/json");

            var response = await _apiClient.PostAsync("", basketContent);

            response.EnsureSuccessStatusCode();
        }
示例#2
0
        private void AddToList(WaitListViewModel waitListInfo)
        {
            //set default values
            //
            //waitListInfo.IsActive = true;
            //waitListInfo.IsPreferred = false;
            //waitListInfo.WaitingStatus = "Waiting";
            //waitListInfo.ServedTableNumber = "0";
            //waitListInfo.ArrivalTime = DateTime.Now;
            //waitListInfo.StatusChangeTime = DateTime.Now;
            //waitListInfo.CreateDate = DateTime.Now;
            //waitListInfo.UpdateDate = DateTime.Now;

            //var org = _userProfileService.GetOrganizationById(waitListInfo.OrganizationId);

            //Persist waitlist in database
            //
            _waitListService.AddToWaitList(waitListInfo);
        }
        public async Task <IActionResult> Create(WaitListViewModel model)
        {
            await _waitList.Create(model);

            return(Redirect("/"));
        }
示例#4
0
        public IHttpActionResult AddToWaitList(WaitListViewModel waitListInfo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                //set default values
                //
                waitListInfo.IsActive          = true;
                waitListInfo.IsPreferred       = false;
                waitListInfo.WaitingStatus     = "Waiting";
                waitListInfo.ServedTableNumber = "0";
                waitListInfo.ArrivalTime       = DateTime.Now;
                waitListInfo.StatusChangeTime  = DateTime.Now;
                waitListInfo.CreateDate        = DateTime.Now;
                waitListInfo.UpdateDate        = DateTime.Now;

                //Add to the wait list
                AddToList(waitListInfo);
            }
            catch (Exception)
            {
                throw;
            }
            //set default values
            //
            //waitListInfo.IsActive = true;
            //waitListInfo.IsPreferred = false;
            //waitListInfo.WaitingStatus = "Waiting";
            //waitListInfo.ServedTableNumber = "0";
            //waitListInfo.ArrivalTime = DateTime.Now;
            //waitListInfo.StatusChangeTime = DateTime.Now;
            //waitListInfo.CreateDate = DateTime.Now;
            //waitListInfo.UpdateDate = DateTime.Now;

            var org = _userProfileService.GetOrganizationById(waitListInfo.OrganizationId);

            ////Persist waitlist in database
            ////
            //_waitListService.AddToWaitList(waitListInfo);



            //Get wait time depending on the hour of day
            //
            var hourOfDay = Int32.Parse(DateTime.Now.Hour.ToString());
            var weekDay   = DateTime.Now.DayOfWeek;

            var waitTime = _waitTimeService.GetWaitTime(hourOfDay, weekDay);


            //Send sms to guest
            //
            var to = waitListInfo.GuestContactTel;

            var msg = "";

            if (waitTime == "0")
            {
                msg = "Dear " + waitListInfo.GuestFirstName + ", The restaurant is currently closed. Please call tomorrow. " +
                      org.Name + ".";
            }
            else
            {
                msg = "Dear " + waitListInfo.GuestFirstName + ", you have been put in our waitlist. " +
                      "The approximate wait time is " + waitTime +
                      " min. You will be notified when a table is available. Thanks." + "  " + org.Name + ".";
            }


            //SendSmsMessage();

            SendSmsMessageToGuest(to, msg); //For full testing and production

            return(Ok());
        }
示例#5
0
        [Route("list/sms")]                                       //Add to wait list via SMS message
        public IHttpActionResult SmsAddToList(SmsRequest message) // change the SmsMessageViewModel to SmsRequest, a Twilio message request object
        {
            // for real Twilio SMS message
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //set organizationId to the target code from the argument passed in, then find out the organizaitonId

            var orgId = _userProfileService.GetOrganizationByCode(message.To).Id;

            string[] info = GetRequest(message.Body);

            var customerName = "";
            var guest        = "";

            var waitListInfo = new WaitListViewModel();

            try
            {
                customerName = info[0];
                guest        = info[1];


                waitListInfo.GuestFirstName  = customerName;
                waitListInfo.GuestLastName   = "Guest";
                waitListInfo.GuestGroupSize  = int.Parse(guest);
                waitListInfo.GuestContactTel = message.From.Substring(2);
                waitListInfo.OrganizationId  = orgId;

                waitListInfo.IsActive          = true;
                waitListInfo.IsPreferred       = false;
                waitListInfo.WaitingStatus     = "Waiting";
                waitListInfo.ServedTableNumber = "0";
                waitListInfo.ArrivalTime       = DateTime.Now;
                waitListInfo.StatusChangeTime  = DateTime.Now;
                waitListInfo.CreateDate        = DateTime.Now;
                waitListInfo.UpdateDate        = DateTime.Now;
            }
            catch (Exception)
            {
                var error_msg = "Invalid format. Please resend in the form of 'name number, e.g. John 5. Thanks.";
                var outTo     = message.From;

                SendSmsMessageToGuest(outTo, error_msg);


                throw;
            }



            #region implementation

            /* */
            try
            {
                //Add to the wait list
                AddToList(waitListInfo);
            }
            catch (Exception)
            {
                throw;
            }

            var org = _userProfileService.GetOrganizationById(waitListInfo.OrganizationId);

            ////Persist waitlist in database
            ////
            //_waitListService.AddToWaitList(waitListInfo);



            //Get wait time depending on the hour of day and day of week
            //

            var weekDay = DateTime.Now.DayOfWeek; //Int32.Parse(DateTime.Now.DayOfWeek.ToString());

            var hourOfDay = Int32.Parse(DateTime.Now.Hour.ToString());

            var waitTime = _waitTimeService.GetWaitTime(hourOfDay, weekDay);

            var to = waitListInfo.GuestContactTel;

            var msg = "";

            if (waitTime == "0")
            {
                msg = "Dear " + waitListInfo.GuestFirstName + ", The restaurant is currently closed. Please call tomorrow. " +
                      org.Name + ".";
            }
            else
            {
                msg = "Dear " + waitListInfo.GuestFirstName + ", you have been put in our waitlist. " +
                      "The approximate wait time is " + waitTime +
                      " min. You will be notified when a table is available. Thanks." + "  " + org.Name + ".";
            }
            //Send sms to guest
            //



            //SendSmsMessage();

            SendSmsMessageToGuest(to, msg); //For full testing and production

            #endregion

            return(Ok());
        }