//Insert help session into the table storage
        public static void InsertOrUpdate(HelpSessionDataType entity)
        {
            //entity.PartitionKey = Settings.MainHost;
            entity.RowKey = "";

            var helper = new TableHelper(Settings.StorageAccountConnection, tablename);
            helper.InsertOrReplace<HelpSessionDataType>(entity);
        }
 // Delete a help session form the table storage
 public static void Delete(string sessionId)
 {
     var entity = new HelpSessionDataType();
     entity.PartitionKey = sessionId;
     entity.RowKey = "";
     var helper = new TableHelper(Settings.StorageAccountConnection, tablename);
     helper.DeleteIfPresent<HelpSessionDataType>(entity, true);
 }
 public ActionResult HelpDequeue()
 {
     CloudQueueMessage helpSessionKey = HelpSessionQueue.GetMessage();
     var model = new HelpSessionDataType();
     if(helpSessionKey == null)
     {
         Response.SetStatus(HttpStatusCode.NoContent);
         return null;
     }
     model = GetSession(helpSessionKey.AsString);
     HelpSessionQueue.DeleteMessage(helpSessionKey);
     var responseData = new
     {
         apiKey = Settings.Tk.ApiKey,
         sessionId = model.SessionId,
         token = Settings.Tk.GenerateToken(model.SessionId),
         customerName = model.CustomerName,
         problemText = model.ProblemText
     };
     return Json(responseData, JsonRequestBehavior.AllowGet);
 }
 public ActionResult HelpSession()
 {
     string errorMessage = null;
         var customerName = Request.Params["customer_name"];
         var  problemText = Request.Params["problem_text"];
         Debug.WriteLine(customerName + problemText);
         // Validation for the text fields
         if (customerName.IsEmpty() || problemText.IsEmpty())
         {
             errorMessage = "The fields customer_name and problem_text are required.";
         }
         if (customerName.Length > 50)
         {
             errorMessage = "The field customer_name is too long";
         }
         if (problemText.Length > 200)
         {
             errorMessage = "The field problem_text is too long";
         }
         if (!(errorMessage.IsEmpty()))
         {
             Response.SetStatus(400);
             return Json(errorMessage);
         }
         var session = Settings.Tk.CreateSession();
         var model = new HelpSessionDataType
         {
             PartitionKey = session.Id,
             ProblemText = problemText,
             CustomerName = customerName,
             SessionId = session.Id
         };
         HelpSessionData.InsertOrUpdate(model);
         var responseData =
             new {apiKey = Settings.Tk.ApiKey, sessionId = session.Id, token = session.GenerateToken()};
         Response.ContentType = "application/json";
         return Json(responseData, JsonRequestBehavior.AllowGet);
 }