public void SaveAndLoadMappings_DeleteModify() { CheckDisposed(); m_importSettings.ImportTypeEnum = TypeOfImport.Other; m_importSettings.SetMapping(MappingSet.Main, new ImportMappingInfo(@"\aa", null, false, MappingTargetType.TEStyle, MarkerDomain.Default, ScrStyleNames.NormalParagraph, null)); m_importSettings.SetMapping(MappingSet.Main, new ImportMappingInfo(@"\cc", null, false, MappingTargetType.TEStyle, MarkerDomain.Default, ScrStyleNames.NormalParagraph, null)); m_importSettings.SetMapping(MappingSet.Main, new ImportMappingInfo(@"\ee", null, false, MappingTargetType.TEStyle, MarkerDomain.Default, ScrStyleNames.NormalParagraph, null)); m_importSettings.SetMapping(MappingSet.Main, new ImportMappingInfo(@"\qq", null, false, MappingTargetType.TEStyle, MarkerDomain.Default, ScrStyleNames.NormalParagraph, null)); m_importSettings.SetMapping(MappingSet.Notes, new ImportMappingInfo(@"\aa", null, false, MappingTargetType.TEStyle, MarkerDomain.Note, ScrStyleNames.Remark, null, m_inMemoryCache.m_consultantNoteDefn)); m_importSettings.SetMapping(MappingSet.Notes, new ImportMappingInfo(@"\cc", null, false, MappingTargetType.TEStyle, MarkerDomain.Note, ScrStyleNames.Remark, null, m_inMemoryCache.m_consultantNoteDefn)); m_importSettings.SetMapping(MappingSet.Notes, new ImportMappingInfo(@"\ee", null, false, MappingTargetType.TEStyle, MarkerDomain.Note, ScrStyleNames.Remark, null, m_inMemoryCache.m_consultantNoteDefn)); // save to the DB, create a new settings object and reload it m_importSettings.SaveSettings(); ScrImportSet newSettingsObj = new ScrImportSet(Cache, Cache.LangProject.TranslatedScriptureOA.ImportSettingsOC.HvoArray[0]); // Sanity check to verify the settings IEnumerable scrMappings = newSettingsObj.Mappings(MappingSet.Main); Assert.IsNotNull(scrMappings); Assert.AreEqual(4, ((ScrMappingList)scrMappings).Count); IEnumerable notesMappings = newSettingsObj.Mappings(MappingSet.Notes); Assert.IsNotNull(notesMappings); Assert.AreEqual(3, ((ScrMappingList)notesMappings).Count); // Replace "cc" in Main and "ee" in Notes newSettingsObj.SetMapping(MappingSet.Main, new ImportMappingInfo(@"\cc", null, false, MappingTargetType.Figure, MarkerDomain.Default, null, null)); newSettingsObj.SetMapping(MappingSet.Notes, new ImportMappingInfo(@"\ee", null, false, MappingTargetType.TEStyle, MarkerDomain.Note, ScrStyleNames.Remark, null , m_inMemoryCache.m_translatorNoteDefn)); // Modify existing "ee" in Main and "aa" in Notes ImportMappingInfo main_ee = newSettingsObj.MappingForMarker(@"\ee", MappingSet.Main); main_ee.StyleName = ScrStyleNames.NormalFootnoteParagraph; ImportMappingInfo notes_aa = newSettingsObj.MappingForMarker(@"\aa", MappingSet.Notes); notes_aa.StyleName = "Emphasis"; // Delete "qq" in Main and "cc" in Notes ImportMappingInfo main_qq = newSettingsObj.MappingForMarker(@"\qq", MappingSet.Main); ImportMappingInfo notes_cc = newSettingsObj.MappingForMarker(@"\cc", MappingSet.Notes); newSettingsObj.DeleteMapping(MappingSet.Main, main_qq); newSettingsObj.DeleteMapping(MappingSet.Notes, notes_cc); // Save the settings, create a new settings object and reload it. newSettingsObj.SaveSettings(); newSettingsObj = new ScrImportSet(Cache, Cache.LangProject.TranslatedScriptureOA.ImportSettingsOC.HvoArray[0]); // Make sure that all the changes were saved and restored ScrMappingList scrMappingList = (ScrMappingList)newSettingsObj.Mappings(MappingSet.Main); Assert.IsNotNull(scrMappingList); Assert.AreEqual(3, scrMappingList.Count); ScrMappingList notesMappingList = (ScrMappingList)newSettingsObj.Mappings(MappingSet.Notes); Assert.IsNotNull(notesMappingList); Assert.AreEqual(2, notesMappingList.Count); ImportMappingInfo mapping = scrMappingList[0]; Assert.AreEqual(@"\aa", mapping.BeginMarker); Assert.AreEqual(MarkerDomain.Default, mapping.Domain); Assert.AreEqual(ScrStyleNames.NormalParagraph, mapping.StyleName); mapping = scrMappingList[1]; Assert.AreEqual(@"\cc", mapping.BeginMarker); Assert.AreEqual(MarkerDomain.Default, mapping.Domain); Assert.AreEqual(MappingTargetType.Figure, mapping.MappingTarget); mapping = scrMappingList[2]; Assert.AreEqual(@"\ee", mapping.BeginMarker); Assert.AreEqual(MarkerDomain.Default, mapping.Domain); Assert.AreEqual(ScrStyleNames.NormalFootnoteParagraph, mapping.StyleName); mapping = notesMappingList[0]; Assert.AreEqual(@"\aa", mapping.BeginMarker); Assert.AreEqual(MarkerDomain.Default, mapping.Domain); Assert.AreEqual("Emphasis", mapping.StyleName); mapping = notesMappingList[1]; Assert.AreEqual(@"\ee", mapping.BeginMarker); Assert.AreEqual(MarkerDomain.Default, mapping.Domain); Assert.AreEqual(m_inMemoryCache.m_translatorNoteDefn.Guid.ToString(), mapping.NoteType.Guid.ToString()); }