Exemple #1
0
 public void SetUp()
 {
     this.pattern        = new SequencingPattern();
     this.organization   = new OrganizationType();
     this.chapter        = ItemType.CreateNewItem("Chapter", "chapter_base", null, PageType.Chapter);
     this.controlChapter = ItemType.CreateNewItem("Control Chapter", "control chapter", null, PageType.ControlChapter);
 }
Exemple #2
0
        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 });
        }
Exemple #3
0
        public void AreAllChaptersTest()
        {
            Assert.IsTrue(SequencingPattern.AreAllChapters(this.organization));

            this.organization.SubItems.Add(chapter);
            this.organization.SubItems.Add(controlChapter);

            Assert.IsTrue(SequencingPattern.AreAllChapters(organization));

            ItemType theory = ItemType.CreateNewItem("theory1", "theory_id", null, PageType.Theory);

            this.organization.SubItems.Add(theory);

            Assert.IsFalse(SequencingPattern.AreAllChapters(organization));
        }
Exemple #4
0
        public void AreAllPagesTest()
        {
            Assert.IsTrue(SequencingPattern.AreAllPages(this.chapter));

            ItemType theory  = ItemType.CreateNewItem("theory1", "theory_id", null, PageType.Theory);
            ItemType summary = ItemType.CreateNewItem("summary2", "theory2_id", null, PageType.Summary);

            this.chapter.SubItems.Add(theory);
            this.chapter.SubItems.Add(summary);

            Assert.IsTrue(SequencingPattern.AreAllPages(this.chapter));

            this.chapter.SubItems.Add(this.controlChapter);

            Assert.IsFalse(SequencingPattern.AreAllPages(this.chapter));
        }
Exemple #5
0
        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 }));
        }
Exemple #6
0
        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);
            }
        }
Exemple #7
0
        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.Deserialize(new StringReader(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;
            }

            var sw = new StringWriter();

            if (id == 0)
            {
                xml.Serialize(sw, sequencing);
                _CurrentCourse.Sequencing = sw.ToString();
                _Storage.UpdateCourse(_CurrentCourse.Id, _CurrentCourse);
            }
            else
            {
                xml.Serialize(sw, sequencing);
                node.Sequencing = sw.ToString();
                _Storage.UpdateNode(id, node);
            }

            return(Json(new { status = true }));
        }
Exemple #8
0
 public void SetUp()
 {
     this.pattern = new SequencingPattern();
     this.organization = new OrganizationType();
     this.chapter = ItemType.CreateNewItem("Chapter", "chapter_base", null, PageType.Chapter);
     this.controlChapter = ItemType.CreateNewItem("Control Chapter", "control chapter", null, PageType.ControlChapter);
 }
Exemple #9
0
        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 });
        }