public JsonResult ApplyPattern(int id, SequencingPattern pattern, int data) { var node = _Storage.GetNode(id); var xml = new XmlSerializer(typeof(Sequencing)); var xelement = id == 0 ? _CurrentCourse.Sequencing : node.Sequencing; var sequencing = xelement == null ? new Sequencing() : (Sequencing)xml.DeserializeXElement(xelement); switch (pattern) { case SequencingPattern.ControlChapterSequencingPattern: sequencing = SequencingPatternManager.ApplyControlChapterSequencing(sequencing); break; case SequencingPattern.RandomSetSequencingPattern: sequencing = SequencingPatternManager.ApplyRandomSetSequencingPattern(sequencing, data); break; case SequencingPattern.OrganizationDefaultSequencingPattern: sequencing = SequencingPatternManager.ApplyDefaultChapterSequencing(sequencing); break; } if (id == 0) { _CurrentCourse.Sequencing = xml.SerializeToXElemet(sequencing); _Storage.UpdateCourse(_CurrentCourse.Id, _CurrentCourse); } else { node.Sequencing = xml.SerializeToXElemet(sequencing); _Storage.UpdateNode(id, node); } return Json(new { status = true }); }
public JsonResult SaveProperties(int nodeId, string type) { var node = _Storage.GetNode(nodeId); var xml = new XmlSerializer(typeof(Sequencing)); var xelement = nodeId == 0 ? _CurrentCourse.Sequencing : node.Sequencing; var sequencing = xelement == null ? new Sequencing() : (Sequencing)xml.DeserializeXElement(xelement); object model; if (type == "ControlMode") { model = new ControlMode(); TryUpdateModel(model as ControlMode); sequencing.ControlMode = model as ControlMode; } else if (type == "LimitConditions") { model = new LimitConditions(); TryUpdateModel(model as LimitConditions); sequencing.LimitConditions = model as LimitConditions; } else if (type == "ConstrainedChoiceConsiderations") { model = new ConstrainedChoiceConsiderations(); TryUpdateModel(model as ConstrainedChoiceConsiderations); sequencing.ConstrainedChoiceConsiderations = model as ConstrainedChoiceConsiderations; } else if (type == "RandomizationControls") { model = new RandomizationControls(); TryUpdateModel(model as RandomizationControls); sequencing.RandomizationControls = model as RandomizationControls; } else if (type == "DeliveryControls") { model = new DeliveryControls(); TryUpdateModel(model as DeliveryControls); sequencing.DeliveryControls = model as DeliveryControls; } else if (type == "RollupRules") { model = new RollupRules(); TryUpdateModel(model as RollupRules); sequencing.RollupRules = model as RollupRules; } else if (type == "RollupConsiderations") { model = new RollupConsiderations(); TryUpdateModel(model as RollupConsiderations); sequencing.RollupConsiderations = model as RollupConsiderations; } else { throw new NotImplementedException(); } if(nodeId == 0) { _CurrentCourse.Sequencing = xml.SerializeToXElemet(sequencing); _Storage.UpdateCourse(_CurrentCourse.Id, _CurrentCourse); } else { node.Sequencing = xml.SerializeToXElemet(sequencing); _Storage.UpdateNode(nodeId, node); } return Json(new { status = true }); }
public JsonResult Properties(int id, string type) { var xml = new XmlSerializer(typeof(Sequencing)); var xelement = id == 0 ? _CurrentCourse.Sequencing : _Storage.GetNode(id).Sequencing; var sequencing = xelement == null ? new Sequencing() : (Sequencing) xml.DeserializeXElement(xelement); NodeProperty model; var partialView = "Properties"; if (type == "ControlMode") { model = sequencing.ControlMode ?? new ControlMode(); } else if (type == "LimitConditions") { model = sequencing.LimitConditions ?? new LimitConditions(); } else if (type == "ConstrainedChoiceConsiderations") { model = sequencing.ConstrainedChoiceConsiderations ?? new ConstrainedChoiceConsiderations(); } else if (type == "RandomizationControls") { model = sequencing.RandomizationControls ?? new RandomizationControls(); } else if (type == "DeliveryControls") { model = sequencing.DeliveryControls ?? new DeliveryControls(); } else if (type == "RollupRules") { model = sequencing.RollupRules ?? new RollupRules(); } else if (type == "RollupConsiderations") { model = sequencing.RollupConsiderations ?? new RollupConsiderations(); } else { throw new NotImplementedException(); } model.CourseId = _CurrentCourse.Id; model.NodeId = id; model.Type = type; return Json(new { status = true, type = type, data = PartialViewHtml(partialView, model, ViewData) }); }
public void EditPropertiesTest([Values("ControlMode", "LimitConditions", "ConstrainedChoiceConsiderations", "RandomizationControls", "DeliveryControls", "RollupRules", "RollupConsiderations")] string type) { try { // create new node with name "SomeNode", id=ID, courseId=1, and add it to storage this.createNode(); // create new xml serializer var xml = new XmlSerializer(typeof(Sequencing)); // get Sequencing from node with id = ID var xelement = this.Storage.GetNode(ID).Sequencing; // deserialize sequencing from xelement var sequencing = xelement == null ? new Sequencing() : (Sequencing)xml.DeserializeXElement(xelement); // new model object model; // for different type initialise sequencing property if (type == "ControlMode") { model = new ControlMode(); //TryUpdateModel(model as ControlMode); sequencing.ControlMode = model as ControlMode; } else if (type == "LimitConditions") { model = new LimitConditions(); //TryUpdateModel(model as LimitConditions); sequencing.LimitConditions = model as LimitConditions; } else if (type == "ConstrainedChoiceConsiderations") { model = new ConstrainedChoiceConsiderations(); //TryUpdateModel(model as ConstrainedChoiceConsiderations); sequencing.ConstrainedChoiceConsiderations = model as ConstrainedChoiceConsiderations; } else if (type == "RandomizationControls") { model = new RandomizationControls(); //TryUpdateModel(model as RandomizationControls); sequencing.RandomizationControls = model as RandomizationControls; } else if (type == "DeliveryControls") { model = new DeliveryControls(); //TryUpdateModel(model as DeliveryControls); sequencing.DeliveryControls = model as DeliveryControls; } else if (type == "RollupRules") { model = new RollupRules(); //TryUpdateModel(model as RollupRules); sequencing.RollupRules = model as RollupRules; } else if (type == "RollupConsiderations") { model = new RollupConsiderations(); //TryUpdateModel(model as RollupConsiderations); sequencing.RollupConsiderations = model as RollupConsiderations; } else { throw new NotImplementedException(); } // serialize sequencing xelement = xml.SerializeToXElemet(sequencing); // update node this.Storage.UpdateNode(ID, this.Storage.GetNode(ID)); } catch (Exception ex) { Assert.Fail(ex.Message); } }
public void ApplyPatternTest([Values(SequencingPattern.ControlChapterSequencingPattern, SequencingPattern.RandomSetSequencingPattern, SequencingPattern.OrganizationDefaultSequencingPattern)] SequencingPattern pattern) { try { // create new node with name "SomeNode", id=ID, courseId=1, and add it to storage this.createNode(); // get node with id = ID var node = this.Storage.GetNode(ID); // create new xml serializer var xml = new XmlSerializer(typeof(Sequencing)); // get Sequencing from node with id = ID var xelement = this.Storage.GetNode(ID).Sequencing; // deserialize sequencing from xelement var sequencing = xelement == null ? new Sequencing() : (Sequencing)xml.DeserializeXElement(xelement); // for different patterns type apply different patterns switch (pattern) { case SequencingPattern.ControlChapterSequencingPattern: sequencing = SequencingPatternManager.ApplyControlChapterSequencing(sequencing); break; case SequencingPattern.RandomSetSequencingPattern: sequencing = SequencingPatternManager.ApplyRandomSetSequencingPattern(sequencing, 1); break; case SequencingPattern.OrganizationDefaultSequencingPattern: sequencing = SequencingPatternManager.ApplyDefaultChapterSequencing(sequencing); break; } // serialize sequencing node.Sequencing = xml.SerializeToXElemet(sequencing); // try update node this.Storage.UpdateNode(ID, node); } catch (Exception ex) { Assert.Fail(ex.Message); } }
public void ShowPropertiesTest([Values("ControlMode", "LimitConditions", "ConstrainedChoiceConsiderations", "RandomizationControls", "DeliveryControls", "RollupRules", "RollupConsiderations")] string type) { try { // create new node with name "SomeNode", id=ID, courseId=1, and add it to storage this.createNode(); // create new xml serializer var xml = new XmlSerializer(typeof(Sequencing)); // get Sequencing from node with id = ID var xelement = this.Storage.GetNode(ID).Sequencing; // deserialize sequencing from xelement var sequencing = xelement == null ? new Sequencing() : (Sequencing)xml.DeserializeXElement(xelement); // new model NodeProperty model; // for different types get node property and initialise model if (type == "ControlMode") { model = sequencing.ControlMode ?? new ControlMode(); } else if (type == "LimitConditions") { model = sequencing.LimitConditions ?? new LimitConditions(); } else if (type == "ConstrainedChoiceConsiderations") { model = sequencing.ConstrainedChoiceConsiderations ?? new ConstrainedChoiceConsiderations(); } else if (type == "RandomizationControls") { model = sequencing.RandomizationControls ?? new RandomizationControls(); } else if (type == "DeliveryControls") { model = sequencing.DeliveryControls ?? new DeliveryControls(); } else if (type == "RollupRules") { model = sequencing.RollupRules ?? new RollupRules(); } else if (type == "RollupConsiderations") { model = sequencing.RollupConsiderations ?? new RollupConsiderations(); } else { throw new NotImplementedException(); } //model.CourseId = 1; //model.NodeId = ID; //model.Type = type; } catch (Exception ex) { Assert.Fail(ex.Message); } }
public JsonResult ApplyPattern(int id, SequencingPattern pattern, int data) { var node = this.storage.GetNode(id); var xml = new XmlSerializer(typeof(Sequencing)); var xelement = id == 0 ? this.currentCourse.Sequencing : node.Sequencing; var sequencing = xelement == null ? new Sequencing() : (Sequencing)xml.DeserializeXElement(xelement); switch (pattern) { case SequencingPattern.ControlChapterSequencingPattern: sequencing = SequencingPatternManager.ApplyControlChapterSequencing(sequencing); break; case SequencingPattern.RandomSetSequencingPattern: sequencing = SequencingPatternManager.ApplyRandomSetSequencingPattern(sequencing, data); break; case SequencingPattern.OrganizationDefaultSequencingPattern: sequencing = SequencingPatternManager.ApplyDefaultChapterSequencing(sequencing); break; } if (id == 0) { this.currentCourse.Sequencing = xml.SerializeToXElemet(sequencing); this.storage.UpdateCourse(this.currentCourse.Id, this.currentCourse); // logic to update all nodes sequencing var courseNodes = this.storage.GetAllNodes(this.currentCourse.Id); foreach (var courseNode in courseNodes) { courseNode.Sequencing = xml.SerializeToXElemet(sequencing); this.storage.UpdateNode(courseNode.Id, courseNode); } } else { node.Sequencing = xml.SerializeToXElemet(sequencing); this.storage.UpdateNode(id, node); } return Json(new { status = true }); }
private void ApplyDefaultPattern(Course course) { var xml = new XmlSerializer(typeof(Sequencing)); var xelement = course.Sequencing; var sequencing = xelement == null ? new Sequencing() : (Sequencing)xml.DeserializeXElement(xelement); sequencing = SequencingPatternManager.ApplyDefaultChapterSequencing(sequencing); course.Sequencing = xml.SerializeToXElemet(sequencing); this.storage.UpdateCourse(course.Id, course); }