protected void BuildFourPictures(List <Concept> headerItems, List <Concept> fourPictureItems, List <Concept> footerItems) { if (exercise != null && exercise.OptionItems != null && exercise.OptionItems.Count > 0 && fourPictureItems.Count < 4) { fourPictureItems.AddRange(exercise.OptionItems.PickRandomItems(4 - fourPictureItems.Count).Select(item => { item.IsOption = true; return(item); })); } if (Lesson.OptionItems != null && Lesson.OptionItems.Count > 0 && fourPictureItems.Count < 4) { fourPictureItems.AddRange(Lesson.OptionItems.PickRandomItems(4 - fourPictureItems.Count).Select(item => { item.IsOption = true; return(item); })); } fourPictureItems.ForEach(c => { if (c is IResizeable) { (c as IResizeable).Size = (IsSmallHeight() ? 100 : 120); } }); fourPictureItems.Shuffle(); if (exercise == null) { exercise = new SelectConceptExercise(); } exercise.TaskItems = new List <List <Concept> >(); if (headerItems != null && headerItems.Count > 0) { exercise.TaskItems.Add(headerItems); exercise.TaskItems.Add(new List <Concept>() { new Models.Space() }); } exercise.TaskItems.Add(fourPictureItems.GetRange(0, 2)); exercise.TaskItems.Add(fourPictureItems.GetRange(2, 2)); if (footerItems != null && footerItems.Count > 0) { exercise.TaskItems.Add(new List <Concept>() { new Models.Space(15, 8) }); exercise.TaskItems.Add(footerItems); } }
protected override void TransformTaskItems() { var selectConcept = Lesson.DeepCopy(); var fröhlich = selectConcept.NamedConcepts["fröhlich"]; var traurig = selectConcept.NamedConcepts["traurig"]; var weinend = selectConcept.NamedConcepts["weinend"]; var wütend = selectConcept.NamedConcepts["wütend"]; var angeekelt = selectConcept.NamedConcepts["angeekelt"]; var lachend = selectConcept.NamedConcepts["lachend"]; var zufrieden = selectConcept.NamedConcepts["zufrieden"]; var concepts = new List <Concept>(); var random = new Random(); switch (random.Next(0, 7)) { case 0: AddToConcepts(concepts, fröhlich, traurig.Concat(angeekelt.Concat(weinend)).ToList()); break; case 1: AddToConcepts(concepts, traurig, wütend.Concat(angeekelt.Concat(lachend)).ToList()); break; case 2: AddToConcepts(concepts, weinend, zufrieden.Concat(lachend.Concat(fröhlich)).ToList()); break; case 3: AddToConcepts(concepts, wütend, traurig.Concat(fröhlich.Concat(lachend)).ToList()); break; case 4: AddToConcepts(concepts, angeekelt, wütend.Concat(zufrieden.Concat(weinend)).ToList()); break; case 5: AddToConcepts(concepts, lachend, traurig.Concat(wütend.Concat(zufrieden)).ToList()); break; case 6: AddToConcepts(concepts, zufrieden, weinend.Concat(fröhlich.Concat(angeekelt)).ToList()); break; } if (exercise == null) { exercise = new SelectConceptExercise(); } exercise.TaskItems = new List <List <Concept> >(); int letterCount = 0; var row = new List <Concept>(); foreach (var concept in concepts) { var word = concept as Word; word.ShowAsPlainText = true; if (letterCount + word.Text.Length > LettersPerRow) { exercise.TaskItems.Add(row); letterCount = 0; row = new List <Concept>(); } letterCount += word.Text.Length; row.Add(word); } exercise.TaskItems.Add(row); Lesson.LeftAlignItems = Enumerable.Repeat <bool>(true, exercise.TaskItems.Count).ToArray(); }
protected override void TransformTaskItems() { var selectConcept = Lesson.DeepCopy(); var artDef = selectConcept.NamedConcepts["ArtDef"]; var artUndef = selectConcept.NamedConcepts["ArtUndef"]; var persPronSing = selectConcept.NamedConcepts["PersPronSing"]; var persPronPlu = selectConcept.NamedConcepts["PersPronPlu"]; var nounSing = selectConcept.NamedConcepts["NounSing"]; var nounPlu = selectConcept.NamedConcepts["NounPlu"]; var verbPres = selectConcept.NamedConcepts["VerbPres"]; var verbPast = selectConcept.NamedConcepts["VerbPast"]; var concepts = new List <Concept>(); var random = new Random(); switch (random.Next(0, 8)) { case 0: AddToConcepts(concepts, artDef, artUndef.Concat(persPronSing.Concat(nounSing)).ToList()); break; case 1: AddToConcepts(concepts, artUndef, artDef.Concat(persPronSing.Concat(nounPlu)).ToList()); break; case 2: AddToConcepts(concepts, persPronSing, artUndef.Concat(persPronPlu.Concat(nounSing)).ToList()); break; case 3: AddToConcepts(concepts, persPronPlu, artDef.Concat(persPronPlu.Concat(nounPlu)).ToList()); break; case 4: AddToConcepts(concepts, nounSing, verbPres.Concat(nounPlu.Concat(persPronSing)).ToList()); break; case 5: AddToConcepts(concepts, nounPlu, verbPast.Concat(nounSing.Concat(artUndef)).ToList()); break; case 6: AddToConcepts(concepts, verbPres, nounPlu.Concat(verbPast.Concat(persPronPlu)).ToList()); break; case 7: AddToConcepts(concepts, verbPast, nounSing.Concat(verbPres.Concat(artDef)).ToList()); break; } if (exercise == null) { exercise = new SelectConceptExercise(); } exercise.TaskItems = new List <List <Concept> >(); int letterCount = 0; var row = new List <Concept>(); foreach (var concept in concepts) { var word = concept as Word; word.ShowAsPlainText = true; if (letterCount + word.Text.Length > LettersPerRow) { exercise.TaskItems.Add(row); letterCount = 0; row = new List <Concept>(); } letterCount += word.Text.Length; row.Add(word); } exercise.TaskItems.Add(row); Lesson.LeftAlignItems = Enumerable.Repeat <bool>(true, exercise.TaskItems.Count).ToArray(); }
protected override void TransformTaskItems() { exercise = exercise.DeepCopy(); bool headerFlag = true; bool fpFlag = false; List <List <Concept> > headerItems = new List <List <Concept> >(); List <Concept> fourPictureItems = new List <Concept>(); List <List <Concept> > footerItems = new List <List <Concept> >(); foreach (var conceptGroup in exercise.TaskItems) { fpFlag = false; foreach (var concept in conceptGroup) { if (concept.Tag != null && concept.Tag.Equals("FP")) { fourPictureItems.Add(concept); headerFlag = false; fpFlag = true; } } if (!fpFlag) { if (headerFlag) { headerItems.Add(conceptGroup); } else { footerItems.Add(conceptGroup); } } } if (exercise != null && exercise.OptionItems != null && exercise.OptionItems.Count > 0 && fourPictureItems.Count < 4) { fourPictureItems.AddRange(exercise.OptionItems.PickRandomItems(4 - fourPictureItems.Count).Select(item => { item.IsOption = true; return(item); })); } if (Lesson.OptionItems != null && Lesson.OptionItems.Count > 0 && fourPictureItems.Count < 4) { fourPictureItems.AddRange(Lesson.OptionItems.PickRandomItems(4 - fourPictureItems.Count).Select(item => { item.IsOption = true; return(item); })); } fourPictureItems.ForEach(c => { if (c is IResizeable) { // (c as IResizeable).Size = ((headerItems.Count > 2 && footerItems.Count > 0) || IsSmallHeight() ? 100 : 120); (c as IResizeable).Size = (IsSmallHeight() ? 100 : 120); } }); fourPictureItems.Shuffle(); if (exercise == null) { exercise = new SelectConceptExercise(); } exercise.TaskItems = new List <List <Concept> >(); // Add header lines foreach (var headerLine in headerItems) { exercise.TaskItems.Add(headerLine); } exercise.TaskItems.Add(new List <Concept>() { new Models.Space() }); // Add four pictures cards exercise.TaskItems.Add(fourPictureItems.GetRange(0, 2)); exercise.TaskItems.Add(fourPictureItems.GetRange(2, 2)); // Add footer lines exercise.TaskItems.Add(new List <Concept>() { new Models.Space(15, 8) }); foreach (var footerLine in footerItems) { exercise.TaskItems.Add(footerLine); } }