public static CoreStandards CoreStandardFromIdentifier( CoreStandardsXml standardsXml, StandardIdentifier itemIdentifier) { CoreStandardsRow targetRow = null; CoreStandardsRow ccssRow = null; if (standardsXml != null && standardsXml.TargetRows.Any()) { targetRow = standardsXml.TargetRows .FirstOrDefault(t => StandardIdentifierTargetComparer.Instance.Equals(t.StandardIdentifier, itemIdentifier)); } if (standardsXml != null && standardsXml.CcssRows.Any()) { ccssRow = standardsXml.CcssRows .FirstOrDefault(t => StandardIdentifierCcssComparer.Instance.Equals(t.StandardIdentifier, itemIdentifier)); } return(CoreStandards.Create( targetId: itemIdentifier?.Target, targetIdLabel: itemIdentifier?.ToTargetId(), commonCoreStandardsId: itemIdentifier?.CommonCoreStandard, commonCoreStandardsDescription: ccssRow?.Description, targetDescription: targetRow?.Description, claimId: itemIdentifier?.ToClaimId(), publication: itemIdentifier?.Publication)); }
public void TestCoreStandardFromIdentifier() { StandardIdentifier identifier = StandardIdentifierTranslation.StandardStringToStandardIdentifier(elaStandardString); var coreStandardsRowCcss = ImmutableArray.Create( CoreStandardsRow.Create( subjectCode: "ELA", key: "3-l|4-6|6.SL.2", name: "", description: "CCSS Desc", levelType: "CCSS", identifier: identifier)); var coreStandardsRowTarget = ImmutableArray.Create( CoreStandardsRow.Create( subjectCode: "ELA", key: "4-6|3-6", name: "", description: "Target Desc", levelType: "Target", identifier: identifier)); CoreStandardsXml coreStandardsXml = new CoreStandardsXml(coreStandardsRowTarget, coreStandardsRowCcss); CoreStandards core = StandardIdentifierTranslation.CoreStandardFromIdentifier(coreStandardsXml, identifier); Assert.NotNull(core); Assert.Equal(core.CommonCoreStandardsId, "6.SL.2"); Assert.Equal(core.TargetId, "4-6"); Assert.Equal(core.TargetIdLabel, "4"); Assert.Equal(core.TargetDescription, "Target Desc"); Assert.Equal(core.CommonCoreStandardsDescription, "CCSS Desc"); }
private static CoreStandards ApplyPatchToCoreStandards(StandardIdentifier identifier, CoreStandards coreStandards, CoreStandardsXml standardsXml, ItemPatch patch) { string claimNumber = Regex.Match(input: patch.Claim, pattern: @"\d+").Value; if (identifier == null) { identifier = StandardIdentifier.Create(claim: claimNumber, target: patch.Target); } else { string target = (!string.IsNullOrEmpty(patch.Target)) ? patch.Target : identifier.Target; claimNumber = (!string.IsNullOrEmpty(claimNumber)) ? claimNumber : identifier.Claim; identifier = identifier.WithClaimAndTarget(claimNumber, target); } string targetDesc = (!string.IsNullOrEmpty(patch.TargetDescription)) ? patch.TargetDescription : coreStandards?.TargetDescription; string ccssDesc = (!string.IsNullOrEmpty(patch.CCSSDescription)) ? patch.CCSSDescription : coreStandards?.CommonCoreStandardsDescription; coreStandards = StandardIdentifierTranslation.CoreStandardFromIdentifier(standardsXml, identifier); coreStandards = coreStandards.WithTargetCCSSDescriptions(targetDesc, ccssDesc); return(coreStandards); }
/// <summary> /// Translates metadata, itemcontents and lookups to item digest /// </summary> public static SampleItem ToSampleItem( ItemDigest itemDigest, CoreStandardsXml standardsXml, IList <Subject> subjects, IList <InteractionType> interactionTypes, IList <MergedAccessibilityFamily> resourceFamilies, IList <ItemPatch> patches, IList <BrailleFileInfo> brailleFileInfo, AppSettings settings) { var supportedPubs = settings.SettingsConfig.SupportedPublications; var rubrics = GetRubrics(itemDigest, settings); var brailleItemCodes = GetBrailleItemCodes(itemDigest.ItemKey, brailleFileInfo); var braillePassageCodes = GetBraillePassageCodes(itemDigest, brailleFileInfo); var interactionType = interactionTypes.FirstOrDefault(t => t.Code == itemDigest.InteractionTypeCode); var grade = GradeLevelsUtils.FromString(itemDigest.GradeCode); var patch = patches.FirstOrDefault(p => p.ItemId == itemDigest.ItemKey); var copiedItemPatch = patches.FirstOrDefault(p => p.BrailleCopiedId == itemDigest.ItemKey.ToString()); var subject = subjects.FirstOrDefault(s => s.Code == itemDigest.SubjectCode); var depthOfKnowledge = itemDigest.DepthOfKnowledge; var itemType = itemDigest.ItemType; var fieldTestUseAttribute = itemDigest.ItemMetadataAttributes?.FirstOrDefault(a => a.Code == "itm_FTUse"); var fieldTestUse = FieldTestUse.Create(fieldTestUseAttribute, itemDigest.SubjectCode); StandardIdentifier identifier = StandardIdentifierTranslation.ToStandardIdentifier(itemDigest, supportedPubs); CoreStandards coreStandards = StandardIdentifierTranslation.CoreStandardFromIdentifier(standardsXml, identifier); int?copiedFromItem = null; if (patch != null) { int tmp; copiedFromItem = int.TryParse(patch.BrailleCopiedId, out tmp) ? (int?)tmp : null; depthOfKnowledge = !string.IsNullOrEmpty(patch.DepthOfKnowledge) ? patch.DepthOfKnowledge : depthOfKnowledge; itemType = !string.IsNullOrEmpty(patch.ItemType) ? patch.ItemType : itemType; coreStandards = ApplyPatchToCoreStandards(identifier, coreStandards, standardsXml, patch); } if (copiedItemPatch != null) { var copyBrailleItemCodes = GetBrailleItemCodes(copiedItemPatch.ItemId, brailleFileInfo); brailleItemCodes = brailleItemCodes.Concat(copyBrailleItemCodes).Distinct().ToImmutableArray(); } if (patch != null && !string.IsNullOrEmpty(patch.QuestionNumber)) { fieldTestUse = ApplyPatchFieldTestUse(fieldTestUse, patch); } var claim = subject?.Claims.FirstOrDefault(t => t.ClaimNumber == coreStandards.ClaimId); bool brailleOnly = copiedFromItem.HasValue; bool isPerformance = fieldTestUse != null && itemDigest.AssociatedPassage.HasValue; if (itemDigest.AssociatedPassage.HasValue) { braillePassageCodes = brailleFileInfo .Where(f => f.ItemKey == itemDigest.AssociatedPassage.Value) .Select(b => b.BrailleType).ToImmutableArray(); } else { braillePassageCodes = ImmutableArray.Create <string>(); } bool aslSupported = AslSupported(itemDigest); var groups = GetAccessibilityResourceGroups(itemDigest, resourceFamilies, grade, isPerformance, aslSupported, claim, interactionType, brailleItemCodes, settings); string interactionTypeSubCat = ""; settings.SettingsConfig.InteractionTypesToItem.TryGetValue(itemDigest.ToString(), out interactionTypeSubCat); SampleItem sampleItem = new SampleItem( itemType: itemType, itemKey: itemDigest.ItemKey, bankKey: itemDigest.BankKey, targetAssessmentType: itemDigest.TargetAssessmentType, depthOfKnowledge: depthOfKnowledge, sufficentEvidenceOfClaim: itemDigest.SufficentEvidenceOfClaim, associatedStimulus: itemDigest.AssociatedStimulus, aslSupported: aslSupported, allowCalculator: itemDigest.AllowCalculator, isPerformanceItem: isPerformance, accessibilityResourceGroups: groups, rubrics: rubrics, interactionType: interactionType, subject: subject, claim: claim, grade: grade, coreStandards: coreStandards, fieldTestUse: fieldTestUse, interactionTypeSubCat: interactionTypeSubCat, brailleItemCodes: brailleItemCodes, braillePassageCodes: braillePassageCodes, brailleOnlyItem: brailleOnly, copiedFromitem: copiedFromItem); return(sampleItem); }