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]; } }
// private bool _suspendNotificationOfNavigation=false; public GatherWordListTask(IGatherWordListConfig config, LexEntryRepository lexEntryRepository, ViewTemplate viewTemplate) : base(config, lexEntryRepository, viewTemplate) { if (config.WordListFileName == null) { throw new ArgumentNullException("wordListFileName"); } if (config.WordListWritingSystemId == null) { throw new ArgumentNullException("wordListWritingSystemId"); } if (viewTemplate == null) { throw new ArgumentNullException("viewTemplate"); } Field lexicalFormField = viewTemplate.GetField(Field.FieldNames.EntryLexicalForm.ToString()); if (lexicalFormField == null || lexicalFormField.WritingSystemIds.Count < 1) { _lexicalUnitWritingSystem = BasilProject.Project.WritingSystems.UnknownVernacularWritingSystem; } else { string firstWSid = lexicalFormField.WritingSystemIds[0]; WritingSystem firstWS = BasilProject.Project.WritingSystems[firstWSid]; _lexicalUnitWritingSystem = firstWS; } _wordListFileName = config.WordListFileName; _words = null; _writingSystemIdForWordListWords = config.WordListWritingSystemId; }