コード例 #1
0
ファイル: OlxPatcher.cs プロジェクト: andgein/uLearn
		private void SaveSequentialContainingSubverticals(EdxCourse course, IEnumerable<Vertical> verticalsToAdd, Vertical afterThisVertical)
		{
			var sequential = course.GetSequentialContainingVertical(afterThisVertical.UrlName);
			var filename = string.Format("{0}/sequential/{1}.xml", OlxPath, sequential.UrlName);
			var sequentialXml = XDocument.Load(filename).Root ?? new XElement("sequential");
			var refs = sequentialXml.Elements("vertical").ToList();
			var insertIndex = refs
				.Select((v, i) => new {urlName = v.Attribute("url_name").Value, i})
				.First(v => v.urlName == afterThisVertical.UrlName).i + 1;
			refs.InsertRange(insertIndex, verticalsToAdd.Select(v => new XElement("vertical", new XAttribute("url_name", v.UrlName))));
			sequentialXml.ReplaceNodes(refs);
			sequentialXml.Save(filename);
			new FileInfo(filename).RemoveXmlDeclaration();
		}
コード例 #2
0
ファイル: OlxPatcher.cs プロジェクト: hexandr/uLearn
		private void SaveSequentialContainingSubverticals(EdxCourse course, IEnumerable<Vertical> subverticals, Vertical first)
		{
			var sequential = course.GetSequentialContainingVertical(first.UrlName);
			var verticalReferences = sequential.VerticalReferences.ToList();
			var firstReference = verticalReferences.Single(x => x.UrlName == first.UrlName);

			verticalReferences.InsertRange(
				verticalReferences.IndexOf(firstReference) + 1,
				subverticals.Select(x => new VerticalReference { UrlName = x.UrlName })
			);

			sequential.VerticalReferences = verticalReferences.ToArray();
			File.WriteAllText(string.Format("{0}/sequential/{1}.xml", olxPath, sequential.UrlName), sequential.XmlSerialize());
		}
コード例 #3
0
        private void SaveSequentialContainingSubverticals(EdxCourse course, IEnumerable <Vertical> verticalsToAdd, Vertical afterThisVertical)
        {
            var sequential    = course.GetSequentialContainingVertical(afterThisVertical.UrlName);
            var filename      = string.Format("{0}/sequential/{1}.xml", OlxPath, sequential.UrlName);
            var sequentialXml = XDocument.Load(filename).Root ?? new XElement("sequential");
            var refs          = sequentialXml.Elements("vertical").ToList();
            var insertIndex   = refs
                                .Select((v, i) => new { urlName = v.Attribute("url_name").Value, i })
                                .First(v => v.urlName == afterThisVertical.UrlName).i + 1;

            refs.InsertRange(insertIndex, verticalsToAdd.Select(v => new XElement("vertical", new XAttribute("url_name", v.UrlName))));
            sequentialXml.ReplaceNodes(refs);
            sequentialXml.Save(filename);
            new FileInfo(filename).RemoveXmlDeclaration();
        }