private void CreateNonexistantKeywordlistItem(AssessmentItem assessmentItem, ZipArchive testPackageArchive) { ZipArchiveEntry entry = testPackageArchive.CreateEntry(assessmentItem.KeywordListFullPath); XDocument document = new XDocument(CreateEmptyKeywordlistXml(assessmentItem)); itemsModifier.SaveItem(document, entry); }
private void CreateMetaData(AssessmentItem assessmentItem, ZipArchive testPackageArchive) { ZipArchiveEntry entry = testPackageArchive.CreateEntry(assessmentItem.KeywordListMetadataFullPath); XDocument document = new XDocument(CreateEmptyMetaData(assessmentItem.KeywordListItemId, assessmentItem.ItemId)); itemsModifier.SaveItem(document, entry); }
private XElement CreateNewWordlistResource(AssessmentItem assessmentItem, IEnumerable <XElement> resourcesList) { return(new XElement("resource", new XAttribute("type", "wordList"), new XAttribute("id", assessmentItem.KeywordListItemId), new XAttribute("index", resourcesList.Count() + 1), new XAttribute("bankkey", assessmentItem.Bankkey))); }
private void AddNewKeywordsToAssessmentItemContent(AssessmentItem assessmentItem) { foreach (Illustration i in assessmentItem.Illustrations) { if (i.KeywordAdded) { AddKeywordToContent(assessmentItem, i); } } }
private void AddNonexistingKeywordlist(KeywordListItem keywordListItem, AssessmentItem assessmentItem, XElement assessmentItemResource, IList <XElement> resources) { if (!resources.Any(x => x.GetAttribute("identifier") == keywordListItem.Identifier)) { assessmentItemResource.Parent.Add(GetKeywordlistItemResource(keywordListItem)); } if (!resources.Any(x => x.GetAttribute("identifier") == keywordListItem.MetadataIdentifier)) { assessmentItemResource.Parent.Add(GetKeywordlistItemMetadataResource(keywordListItem, assessmentItem.KeywordListMetadataFullPath)); } }
private void AddKeywordToContent(AssessmentItem assessmentItem, Illustration i) { IEnumerable <XElement> contents = assessmentItem.Document.OptionalElement("itemrelease") .OptionalElement("item").Elements("content"); foreach (XElement content in contents) { XElement stem = content.ElementOrException("stem"); stem.ReplaceNodes(new XRaw(AddKeywordToStem(stem, i, assessmentItem))); } }
private XDocument CreateEmptyKeywordlistXml(AssessmentItem assessmentItem) { return(new XDocument(new XDeclaration("1.0", "utf-8", "yes"), new XElement("itemrelease", new XAttribute("version", "2.0"), new XElement("item", new XAttribute("type", "wordList"), new XAttribute("id", assessmentItem.KeywordListItemId), new XAttribute("version", assessmentItem.ItemVersion), new XAttribute("bankkey", assessmentItem.Bankkey), new XElement("keywordList", string.Empty))))); }
private void AddKeywordListItems(KeywordListItem keywordListItem, AssessmentItem assessmentItem, IList <XElement> resources) { XElement assessmentItemResource = resources.FirstOrDefault(x => x.GetAttribute("identifier") == assessmentItem.Identifier); AddNonexistingKeywordlist(keywordListItem, assessmentItem, assessmentItemResource, resources); AddNonexistingKeywordlistToAssessmentItem(keywordListItem, assessmentItem, assessmentItemResource, resources); foreach (Illustration illustration in assessmentItem.Illustrations) { ClearElements(resources, illustration, assessmentItemResource); assessmentItemResource.AddAfterSelf(GetManifestResourceElement(illustration)); assessmentItemResource.Add(GetManifestDependencyElement(illustration)); } }
private string AddKeywordToStem(XElement stemElt, Illustration illustration, AssessmentItem assessmentItem) { string stem = stemElt.FirstNode.ToString(); IEnumerable <string> matches = Regex.Matches(stem, illustration.Term, RegexOptions.IgnoreCase) .Cast <Match>() .Select(x => x.Value); string tagNumber = GetNextTagNumber(stem); foreach (string s in matches) { stem = stem.Replace(s, GetSpan(s, illustration, assessmentItem, tagNumber)); } return(stem); }
private void AddNonexistingKeywordlistToAssessmentItem(KeywordListItem keywordListItem, AssessmentItem assessmentItem, XElement assessmentItemResource, IList <XElement> resources) { IEnumerable <XElement> dependencies = assessmentItemResource.Descendants("dependency"); if (!dependencies.Any(x => x.GetAttribute("identifierref") == keywordListItem.Identifier)) { assessmentItemResource.Add(GetKeywordlistItemDepency(keywordListItem)); } }
private string GetSpan(string termWithCase, Illustration illustration, AssessmentItem assessmentItem, string tagNumber) { return(string.Format(Properties.Resources.SpanString, assessmentItem.ItemId, tagNumber, illustration.Index, termWithCase)); }