public GatherWordListTask(IGatherWordListConfig config, LexEntryRepository lexEntryRepository, ViewTemplate viewTemplate, TaskMemoryRepository taskMemoryRepository) : base(config, lexEntryRepository, viewTemplate, taskMemoryRepository) { _viewTemplate = viewTemplate; Guard.AgainstNull(config.WordListFileName, "config.WordListFileName"); Guard.AgainstNull(config.WordListWritingSystemIdOfOldFlatWordList, "config.WordListWritingSystemIdOfOldFlatWordList"); Guard.AgainstNull(viewTemplate, "viewTemplate"); //enhance: this isn't really true anymore, as we're moving to wordpack (where it's the folder) //for now, this is figure out more carefully in GetPathToUse _usingLiftFile = ".lift" == Path.GetExtension(config.WordListFileName).ToLower(); _lexicalUnitWritingSystem = viewTemplate.GetFirstNonVoiceWritingSystemForFieldOrThrow(Field.FieldNames.EntryLexicalForm.ToString()); _lexemeFormListFileName = config.WordListFileName; _words = null; _preferredPromptingWritingSystemId = config.WordListWritingSystemIdOfOldFlatWordList; var f = viewTemplate.GetField(LexSense.WellKnownProperties.Definition); Guard.AgainstNull(f, "No field for definition"); _definitionWritingSystemIds = f.WritingSystemIds; f = viewTemplate.GetField(LexSense.WellKnownProperties.Gloss); if (f != null) { _glossWritingSystemIds = f.WritingSystemIds; } else { _glossWritingSystemIds = new List <string>(); } if (f != null && f.IsMeaningField) { _glossMeaningField = true; _meaningWritingSystemIds = _glossWritingSystemIds; } else { _meaningWritingSystemIds = _definitionWritingSystemIds; } if (_meaningWritingSystemIds.Count > 0) { _preferredPromptingWritingSystemId = _meaningWritingSystemIds[0]; } }