/// ------------------------------------------------------------------------------------
        public void Read(RecordCache recCache)
        {
            var allLexEntries = FwDBUtils.GetLexEntriesFromFw7Project(m_fwDsInfo).ToArray();

            if (allLexEntries == null)
            {
                return;
            }

            m_worker.ReportProgress(allLexEntries.Length, m_dataSource.DisplayTextWhenReading);
            var customnames = m_customfield.FieldNames();

            foreach (var lxEntry in allLexEntries)
            {
                m_worker.ReportProgress(0);
                var entry = ReadSingleLexEntry(lxEntry);
                if (entry != null)
                {
                    var customvalues = m_customfield.CustomValues.FindAll(m => m.Guid == lxEntry.Guid.ToString());
                    SetCustomFieldsforEntry(customnames, customvalues, entry);
                    if (m_dataSource.FwDataSourceInfo != null && m_dataSource.FwDataSourceInfo.PhoneticSourceField != null)
                    {
                        var vernacularMapping = new PaField(m_dataSource.FwDataSourceInfo.PhoneticSourceField);
                        entry.SetValue(PaField.kPhoneticSourceFieldName.ToString(CultureInfo.InvariantCulture),
                                       m_fwDsInfo.PhoneticStorageMethod != FwDBUtils.PhoneticStorageMethod.PronunciationField &&
                                       m_fwDsInfo.PhoneticStorageMethod != FwDBUtils.PhoneticStorageMethod.AllPronunciationFields
                                ? vernacularMapping.Name
                                : m_fwDsInfo.PhoneticStorageMethod.ToString());
                    }
                    recCache.Add(entry);
                }
            }

            m_dataSource.UpdateLastModifiedTime();
        }
        /// ------------------------------------------------------------------------------------
        public void Read(RecordCache recCache)
        {
            m_worker.ReportProgress(0);

            if (m_dataSource.FwDataSourceInfo == null)
            {
                return;
            }

            m_recCache = recCache;

            // Get the lexical data from the FW database.
            m_dataSource.SkipLoadingBecauseOfProblem = !GetData();
            m_dataSource.FwDataSourceInfo.IsMissing  = m_dataSource.SkipLoadingBecauseOfProblem;

            if (!m_dataSource.SkipLoadingBecauseOfProblem && !m_dataSource.FwDataSourceInfo.IsMissing)
            {
                m_dataSource.UpdateLastModifiedTime();
            }
        }