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, 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"); } }
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); }