コード例 #1
0
        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];
            }
        }