public async Task <bool> PostFormAsync(ViewModels.NewFormViewModel form) { var uri = new Uri(string.Format(Constants.RestUrl, "forms")); var body = FormParser.PostFormbuilder(form); var content = new StringContent(body.ToString(), Encoding.UTF8, "application/json"); var contentString = await content.ReadAsStringAsync(); Debug.WriteLine("[Form API] - content built: " + contentString); try { var response = await _client.PostAsync(uri, content); if (response.IsSuccessStatusCode) { var responseContent = await response.Content.ReadAsStringAsync(); Debug.WriteLine("[Form API] - Post result: " + responseContent); return(true); } else { var failedContent = await response.Content.ReadAsStringAsync(); Debug.WriteLine("[Form API] - Post response unsuccessful " + failedContent); return(false); } } catch (Exception ex) { Debug.WriteLine("[Form API exception]:" + ex.Message); return(false); } }
public static JObject PostFormbuilder(ViewModels.NewFormViewModel form) { JObject body = new JObject(); JObject formContent = new JObject(); JArray multipleChoice = new JArray(); JArray discursive = new JArray(); var multipleChoices = form.MultipleChoiceQuestions; formContent.Add("title", form.Title); foreach (ViewModels.QuestionDetailViewModel question in multipleChoices) { JObject multipleChoiceQuestion = new JObject(); JArray multipleChoiceOptions = new JArray(); multipleChoiceQuestion.Add("multiple_anwsers", question.MultipleAnswers); foreach (string option in question.Options) { multipleChoiceOptions.Add(option); } multipleChoiceQuestion.Add("options", multipleChoiceOptions); multipleChoiceQuestion.Add("question", question.Title); multipleChoice.Add(multipleChoiceQuestion); Debug.WriteLine("[Form API] - Parser 1 " + multipleChoice.ToString()); } Debug.WriteLine("[Form API] - Parser 2 " + multipleChoice.ToString()); var discursiveQuestions = form.DiscursiveQuestionsTitles; foreach (string question in discursiveQuestions) { JObject discursiveQuestion = new JObject(); discursiveQuestion.Add("question", question); discursive.Add(discursiveQuestion); } formContent.Add("multipleChoices", multipleChoice); formContent.Add("discussive", discursive); body.Add("form", formContent); return(body); }
public QuestionDetailPage(ViewModels.NewFormViewModel formViewModel) { BindingContext = formViewModel; InitializeComponent(); }