Exemple #1
0
        public ActionResult BusinessObject(int id, int taskId)
        {
            bool userhasboright = false;

            JobsHelper jhelper = new JobsHelper();

            var task = _inFlowDb.T_Tasks.Find(taskId);
            var boi  = _db.BusinessObjectInstances.Find(id);

            bool readOnly = true;

            bool usercanaccessTask = jhelper.CanUserAccessTask(taskId, User.Identity.Name);

            if (usercanaccessTask)
            {
                if (task.EditableParameters.Contains("{\"Type\":\"bobasic\",\"Value\":{\"bo\":"
                                                     + boi.BusinessObjectId + ",\"boi\":"
                                                     + boi.Id + "}}"))
                {
                    userhasboright = true;
                    if (task.Done == false)
                    {
                        readOnly = false;
                    }
                }
                else if (task.ReadableParameters.Contains("{\"Type\":\"bobasic\",\"Value\":{\"bo\":"
                                                          + boi.BusinessObjectId + ",\"boi\":"
                                                          + boi.Id + "}}"))
                {
                    userhasboright = true;
                }
            }


            if (userhasboright)
            {
                BORender    bor   = new BORender();
                ViewBOModel model = new ViewBOModel();
                // dynamic model = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(boi.Data);
                model.BObjectIdentifier = id;
                //model.BObjectSchema = JObject.Parse(boi.BusinessObject.JsonSchema);
                //model.BObjectErrors = null;
                model.ViewData = bor.createHTML(boi.Data, boi.BusinessObject.JsonSchema, boi.BusinessObject.ViewData);
                model.ReadOnly = readOnly;
                ViewBag.TaskId = taskId;

                return(PartialView(model));
            }
            else
            {
                return(PartialView("Accessdenied"));
            }
        }
        public ActionResult SubmitBusinessObject(int id)
        {
            var schemastring = _BOdb.BusinessObjects.Find(id).JsonSchema;


            // string flat = Request.Form.ToString().Replace("%5b", "[").Replace("%5d", "]");
            // string jsonstring = FlatJson.FlatJsonToJsonTree(flat, schemastring);

            string jsonstring = FlatJson.RequestFormToJsonTree(Request.Form, schemastring);

            JObject data = JObject.Parse(jsonstring);



            JsonSchema schema = JsonSchema.Parse(schemastring);

            IList <string> messages;
            bool           valid = data.IsValid(schema, out messages);


            if (valid)
            {
                ViewBag.BObjectIdentifier = id;
                ViewBag.Json = jsonstring;

                Dictionary <string, string> model = new Dictionary <string, string>();
                model.Add("json", jsonstring);

                return(PartialView(model));
            }
            else
            {
                BORender    bor    = new BORender();
                string      boview = _BOdb.BusinessObjects.Find(id).ViewData;
                ViewBOModel model  = new ViewBOModel();
                //dynamic model = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(jsonstring);
                model.BObjectIdentifier = id;
                // model.BObjectSchema = JObject.Parse(schemastring);
                model.BObjectErrors = new List <string>(messages);
                model.ViewData      = bor.createHTML(jsonstring, schemastring, boview);


                return(PartialView("PreviewBO", model));
            }
        }
        public ActionResult PreviewBO(int id)
        {
            var bo = _BOdb.BusinessObjects.Find(id);

            BORender bor = new BORender();


            ViewBOModel model = new ViewBOModel();

            //dynamic model =  new dynamic();// Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(bo.DefaultData);
            model.BObjectIdentifier = id;
            //model.BObjectSchema = JObject.Parse(bo.JsonSchema);
            //model.BObjectErrors = null;



            model.ViewData = bor.createHTML(bo.DefaultData, bo.JsonSchema, bo.ViewData);

            //return View("~/Views/BusinessObject/BusinessObject.cshtml", "~/Views/BusinessObject/_BOLayout.cshtml", model);
            return(PartialView(model));
        }
Exemple #4
0
        public ActionResult SubmitBusinessObject(int id, int taskId)
        {
            bool userhaseditrights = false;

            JobsHelper jhelper = new JobsHelper();

            var task = _inFlowDb.T_Tasks.Find(taskId);
            var boi  = _db.BusinessObjectInstances.Find(id);

            if (!task.Done)
            {
                bool usercanaccessTask = jhelper.CanUserAccessTask(taskId, User.Identity.Name);

                if (usercanaccessTask)
                {
                    if (task.EditableParameters.Contains("{\"Type\":\"bobasic\",\"Value\":{\"bo\":"
                                                         + boi.BusinessObjectId + ",\"boi\":"
                                                         + boi.Id + "}}"))
                    {
                        userhaseditrights = true;
                    }
                }
            }

            if (userhaseditrights)
            {
                var schemastring = _db.BusinessObjectInstances.Find(id).BusinessObject.JsonSchema;



                string jsonstring = FlatJson.RequestFormToJsonTree(Request.Form, schemastring);

                JObject data = JObject.Parse(jsonstring);



                JsonSchema schema = JsonSchema.Parse(schemastring);

                IList <string> messages;
                bool           valid = data.IsValid(schema, out messages);

                if (valid)
                {
                    ViewBag.BObjectIdentifier = id;
                    ViewBag.Json = jsonstring;

                    boi      = _db.BusinessObjectInstances.Find(id);
                    boi.Data = jsonstring;
                    _db.SaveChanges();

                    Dictionary <string, string> model = new Dictionary <string, string>();
                    model.Add("json", jsonstring);

                    return(PartialView(model));
                }
                else
                {
                    boi = _db.BusinessObjectInstances.Find(id);
                    BORender bor = new BORender();

                    ViewBOModel model = new ViewBOModel();
                    //dynamic model = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(jsonstring);
                    model.BObjectIdentifier = id;
                    // model.BObjectSchema = JObject.Parse(schemastring);
                    model.BObjectErrors = new List <string>(messages);
                    model.ViewData      = bor.createHTML(jsonstring, boi.BusinessObject.JsonSchema, boi.BusinessObject.ViewData);
                    ViewBag.TaskId      = taskId;

                    return(PartialView("BusinessObject", model));
                }
            }
            else
            {
                return(PartialView("Accessdenied"));
            }
        }