// POST een FormContent public HttpResponseMessage Post(FormContentBindingModel formContentBindingModel) { try { IsJSON isJson = IsValidJson(formContentBindingModel.Content); // Check of JSON klopt en maak resultaat object if (!isJson.Status) // als resultaat object status fals is return error { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "JSON in 'content' is not correct JSON: " + isJson.Error)); } ContentEqeulsHeadersCheck headersCheck = ContentEqeulsHeaders(formContentBindingModel); if (!headersCheck.Status) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, headersCheck.Error)); } FormContent formContent = new FormContent { Content = formContentBindingModel.Content, FormulierenId = formContentBindingModel.FormId }; db.FormContent.Add(formContent); db.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK, formContent)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } }
private static IsJSON IsValidJson(string strInput) { IsJSON result = new IsJSON(); strInput = strInput.Trim(); if ((strInput.StartsWith("{") && strInput.EndsWith("}")) || //For object (strInput.StartsWith("[") && strInput.EndsWith("]"))) //For array { try { var obj = JToken.Parse(strInput); result.Status = true; return(result); } catch (JsonReaderException jex) { //Exception in parsing json result.Error = jex.Message; result.Status = false; return(result); } catch (Exception ex) //some other exception { result.Error = ex.ToString(); result.Status = false; return(result); } } else { result.Status = false; result.Error = "JSON doesn't start or and with with '{/}' or '[/]' "; return(result); } }
// PUT FormContent by Id public HttpResponseMessage Put(int id, [FromBody] FormContentBindingModel UpdateObject) { var formContent = db.FormContent.Where(f => f.Id == id).FirstOrDefault(); if (formContent == null) { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No FormContent found with id: " + id.ToString())); } else { formContent.FormulierenId = UpdateObject.FormId; IsJSON isJson = IsValidJson(UpdateObject.Content); // Check of JSON klopt en maak resultaat object if (!isJson.Status) // als resultaat object status fals is return error { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "JSON in 'content' is not correct JSON: " + isJson.Error)); } ContentEqeulsHeadersCheck headersCheck = ContentEqeulsHeaders(UpdateObject); if (!headersCheck.Status) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, headersCheck.Error)); } formContent.Content = UpdateObject.Content; try { db.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK, formContent)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } } }
// POST een Formulier public HttpResponseMessage Post(FormulierenBindingModel formulierenBindingModel) { try { IsJSON isJson = IsValidJson(formulierenBindingModel.FormTemplate); // Check of JSON klopt en maak resultaat object if (!isJson.Status) // als resultaat object status fals is return error { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "JSON in 'content' is not correct JSON: " + isJson.Error)); } Formulieren formulier = new Formulieren(); formulier.Name = formulierenBindingModel.Name; formulier.Region = formulierenBindingModel.Region; formulier.FormTemplate = formulierenBindingModel.FormTemplate; db.Formulieren.Add(formulier); db.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } }
// PUT api/values/5 public HttpResponseMessage Put(int id, [FromBody] FormulierenBindingModel UpdateObject) { try { var form = db.Formulieren.Where(f => f.Id == id).FirstOrDefault(); if (form == null) { return(Request.CreateErrorResponse(HttpStatusCode.NotFound, "No form found with id: " + id.ToString())); } if (form.FormTemplate == UpdateObject.FormTemplate) //check if template is changed { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "The template hasn't been changed. Please submit a changed template.")); } IsJSON isJson = IsValidJson(UpdateObject.FormTemplate); if (!isJson.Status) // Check if new formTemplate is correct JSON { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "JSON in 'template' is not correct JSON: " + isJson.Error)); } form.Name = UpdateObject.Name; form.Region = UpdateObject.Region; form.FormTemplate = UpdateObject.FormTemplate; var formContentList = db.FormContent.Where(s => s.FormulierenId == id).ToList(); //get all the formContents related to the form if (formContentList.Count == 0) { db.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK, form)); } List <JArray> formContentArray = new List <JArray>(); foreach (var formContent in formContentList) { formContentArray.Add(JArray.Parse(formContent.Content)); //parse db data to JSON list } var formTemplate = JArray.Parse(form.FormTemplate); //parse new template to JSON if (formTemplate.Count - formContentArray.FirstOrDefault().Count > 1 || formTemplate.Count - formContentArray.FirstOrDefault().Count < -1) //check if only 1 key is edited { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Only 1 key can be added/removed/edited at a time")); } UpdateFormContent(formContentArray, formTemplate); foreach (var content in formContentList) { foreach (var newContent in formContentArray) { content.Content = newContent.ToString(); db.Entry(content).State = EntityState.Modified; db.SaveChanges(); } } return(Request.CreateResponse(HttpStatusCode.OK, form)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex));; } }