Esempio n. 1
0
        // 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));
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        // 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));
                }
            }
        }
Esempio n. 4
0
        // 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));
            }
        }
Esempio n. 5
0
        // 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));;
            }
        }