public async Task<object> InsertQuestionAnswer(Questionare_question_form qdata)
        {
            DBConnector d = new DBConnector();
            if (!d.SQLConnect())
                return WebApiApplication.CONNECTDBERRSTRING;

            string insertintoquestionareresobj = string.Format("insert into {0} values ",Questionare_result_obj.FieldName.TABLE_NAME);
            
            foreach(Questionare_question_answer item in qdata.question_list)
            {
                insertintoquestionareresobj += string.Format("({0},{1})", item.questionare_question_id, item.answer);
                if (item != qdata.question_list.Last())
                    insertintoquestionareresobj += ",";
            }

            string insertintoquestionareressub = string.Format("insert into {0} values ({1},'{2}')",
                Questionare_result_sub.FieldName.TABLE_NAME, qdata.question_list.First().questionare_set_id,
                qdata.suggestion);

            string truecasecmd = string.Format("BEGIN {0} {1} END", insertintoquestionareresobj, insertintoquestionareressub);
            d.iCommand.CommandText = string.Format("if exists (select * from {0} where {1} = {2}) {3} else return ",
                Questionare_set.FieldName.TABLE_NAME, Questionare_set.FieldName.QUESTIONARE_SET_ID, qdata.question_list.First().questionare_set_id,
                truecasecmd);
            try
            {
                int rowaffacted = await d.iCommand.ExecuteNonQueryAsync();
                if (rowaffacted > 0)
                    return null;
                else
                    return "แบบสอบถามนี้ถูกลบแล้ว";
            }
            catch (Exception ex)
            {
                //Handle error from sql execution
                return ex.Message;
            }
            finally
            {
                //Whether it success or not it must close connection in order to end block
                d.SQLDisconnect();
            }
        }
        public async Task<IHttpActionResult> PutForAnswerQuestions(List<object> list)
        {
            Questionare_question_form q = new Questionare_question_form();
            q.suggestion = JObject.Parse(list.Last().ToString())["suggestion"].ToString();
            
            //add answer for each question to pre-last item (pre-last item is suggestion)
            foreach(JObject item in list)
            {
                if (item == list.Last()) break;
                q.question_list.Add(new Questionare_question_answer
                {
                    questionare_set_id = Convert.ToInt32(item["questionare_set_id"]),
                    questionare_question_id = Convert.ToInt32(item["questionare_question_id"]),
                    answer = Convert.ToInt32(item["answer"])
                });
            }

            object result = await datacontext.InsertQuestionAnswer(q);
            if (result == null)
                return Ok();
            else
                return BadRequest(result.ToString());
        }