コード例 #1
0
        public ActionResult UpdateUnitSorting(int id)
        {
            var didacheDb = new DidacheDb();

            string data = HttpUtility.UrlDecode(Request.Form.ToString());

            //dynamic newValue = Newtonsoft.Json.JsonConvert.DeserializeObject<System.Dynamic.>(data);
            var reader = new JsonFx.Json.JsonReader();
            dynamic output = reader.Read(data);

            foreach (var unitInfo in output) {

                // get and update the unit
                Unit unit = didacheDb.Units.Find(unitInfo.unitid);
                unit.SortOrder = unitInfo.sortorder;

                foreach (var taskInfo in unitInfo.tasks) {
                    // get and update the task
                    Task task = didacheDb.Tasks.Find(taskInfo.taskid);
                    task.SortOrder = taskInfo.sortorder;

                }

            }

            string errorMessage = "";
            bool success = false;

            try {
                didacheDb.SaveChanges();
                success = true;
            } catch {
                var entries = didacheDb.GetValidationErrors();
                foreach (var entry in entries) {
                    errorMessage += "[" + entry.Entry.Entity.ToString() + "]\n";
                    foreach (var error in entry.ValidationErrors) {
                        errorMessage += error.PropertyName + " = " + error.ErrorMessage + "; ";
                    }
                }
            }

            return Json(new { success = success, errorMessage = errorMessage});
        }