当前位置: 首页>>代码示例>>C#>>正文


C# IDomainObjectDTORepository.TryGetValue方法代码示例

本文整理汇总了C#中IDomainObjectDTORepository.TryGetValue方法的典型用法代码示例。如果您正苦于以下问题:C# IDomainObjectDTORepository.TryGetValue方法的具体用法?C# IDomainObjectDTORepository.TryGetValue怎么用?C# IDomainObjectDTORepository.TryGetValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IDomainObjectDTORepository的用法示例。


在下文中一共展示了IDomainObjectDTORepository.TryGetValue方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: PerformMigration

		public void PerformMigration(IDomainObjectDTORepository domainObjectDtoRepository)
		{
			DataMigrationServices.CheckVersionNumber(domainObjectDtoRepository, 7000057);
			{
				// LT-13312 Note some projects may not have these guids.
				DomainObjectDTO dtoVariantType;
				if (domainObjectDtoRepository.TryGetValue(LexEntryTypeTags.kguidLexTypPluralVar.ToString(), out dtoVariantType))
					AddGlossAppendIfEmpty(domainObjectDtoRepository, dtoVariantType, ".pl");
				if (domainObjectDtoRepository.TryGetValue(LexEntryTypeTags.kguidLexTypPastVar.ToString(), out dtoVariantType))
					AddGlossAppendIfEmpty(domainObjectDtoRepository, dtoVariantType, ".pst");
			}
			DataMigrationServices.IncrementVersionNumber(domainObjectDtoRepository);
		}
开发者ID:sillsdev,项目名称:FieldWorks,代码行数:13,代码来源:DataMigration7000058.cs

示例2: CheckDtoRemoved

		internal static void CheckDtoRemoved(IDomainObjectDTORepository dtoRepos, DomainObjectDTO goner)
		{
			DomainObjectDTO dto;
			if (dtoRepos.TryGetValue(goner.Guid, out dto))
			{
				Assert.Fail("Still has deleted (or zombie) DTO.");
			}
			Assert.IsTrue(((DomainObjectDtoRepository)dtoRepos).Goners.Contains(goner));
		}
开发者ID:sillsdev,项目名称:FieldWorks,代码行数:9,代码来源:DataMigrationTestServices.cs

示例3: PerformMigration

		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Sets the ParaContainingOrc property for all ScrFootnotes
		/// </summary>
		/// <param name="domainObjectDtoRepository">
		/// Repository of all CmObject DTOs available for one migration step.
		/// </param>
		/// <remarks>
		/// The method must add/remove/update the DTOs to the repository,
		/// as it adds/removes objects as part of it work.
		///
		/// Implementors of this interface should ensure the Repository's
		/// starting model version number is correct for the step.
		/// Implementors must also increment the Repository's model version number
		/// at the end of its migration work.
		///
		/// The method also should normally modify the xml string(s)
		/// of relevant DTOs, since that string will be used by the main
		/// data migration calling client (ie. BEP).
		/// </remarks>
		/// ------------------------------------------------------------------------------------
		public void PerformMigration(IDomainObjectDTORepository domainObjectDtoRepository)
		{
			DataMigrationServices.CheckVersionNumber(domainObjectDtoRepository, 7000026);

			foreach (var scrTxtPara in domainObjectDtoRepository.AllInstancesSansSubclasses("ScrTxtPara"))
			{
				XElement para = XElement.Parse(scrTxtPara.Xml);
				XElement contents = para.Element("Contents");
				if (contents == null)
					continue;
				XElement str = contents.Element("Str");
				if (str == null)
					continue;

				foreach (XElement run in str.Elements("Run"))
				{
					XAttribute linkAttr = run.Attribute("ownlink");
					if (linkAttr == null)
						continue; // Run doesn't contain a link
					DomainObjectDTO linkObj;
					// skip links to missing footnotes - user will have to clean these up later.
					if (!domainObjectDtoRepository.TryGetValue(linkAttr.Value, out linkObj))
						continue;
					XElement footnote = XElement.Parse(linkObj.Xml);
					if (footnote.Attribute("class").Value != "ScrFootnote")
						continue; // Link is not for a footnote

					if (footnote.Element("ParaContainingOrc") == null)
					{
						// ParaContainingOrc property is not present in the footnote, so it needs
						// to be added.
						XElement paraContainingOrcElm = XElement.Parse("<ParaContainingOrc><objsur guid=\"" +
							scrTxtPara.Guid + "\" t=\"r\" /></ParaContainingOrc>");
						footnote.Add(paraContainingOrcElm);

						DataMigrationServices.UpdateDTO(domainObjectDtoRepository, linkObj, footnote.ToString());
					}
				}
			}

			DataMigrationServices.IncrementVersionNumber(domainObjectDtoRepository);
		}
开发者ID:bbriggs,项目名称:FieldWorks,代码行数:63,代码来源:DataMigration7000027.cs

示例4: PerformMigration

		public void PerformMigration(IDomainObjectDTORepository domainObjectDtoRepository)
		{
			DataMigrationServices.CheckVersionNumber(domainObjectDtoRepository, 7000056);

			IList<string> irregularlyInflectedFormVariantTypeSystemGuids = new List<string>() {
				LexEntryTypeTags.kguidLexTypIrregInflectionVar.ToString(),
				LexEntryTypeTags.kguidLexTypPluralVar.ToString(),
				LexEntryTypeTags.kguidLexTypPastVar.ToString() };

			// first change the class of all the known systemGuids
			foreach (var systemGuid in irregularlyInflectedFormVariantTypeSystemGuids)
			{
				DomainObjectDTO dtoVariantType;
				// LT-13312 Note some projects may not have these guids.
				if (domainObjectDtoRepository.TryGetValue(systemGuid, out dtoVariantType))
				{
					ChangeClassOfOwnerAndChildren(domainObjectDtoRepository, dtoVariantType,
						LexEntryTypeTags.kClassName, LexEntryInflTypeTags.kClassName);
				}
			}
			DataMigrationServices.IncrementVersionNumber(domainObjectDtoRepository);
		}
开发者ID:bbriggs,项目名称:FieldWorks,代码行数:22,代码来源:DataMigration7000057.cs

示例5: RemoveDanglingReferences

		private static void RemoveDanglingReferences(
			IDomainObjectDTORepository dtoRepos,
			IEnumerable<DomainObjectDTO> allDtos)
		{
			foreach (var currentDto in allDtos)
			{
				 // Fetch the referred (regular reference or owning reference) to object guids.
			   var referredToGuids = ExtractReferencedObjects(currentDto);

				// See if it is a dangling ref, where target object has been deleted.
				foreach (var targetGuid in referredToGuids)
				{
					DomainObjectDTO referencedDto;
					if (dtoRepos.TryGetValue(targetGuid, out referencedDto))
						continue;

					// targetGuid is a dangling reference.
					// Remove the <objsur> element from referring object (kvp Key).
					// The <objsur> will have its 'guid' attribute set to 'targetGuid'.
					// This will work for owned as well as standard referenced objects.
					var targetGuidAsString = targetGuid.ToLower();
					var referringDto = dtoRepos.GetDTO(currentDto.Guid);
					var referringElement = XElement.Parse(referringDto.Xml);
					var emptyPropElements = new List<XElement>();
					foreach (var danglingRef in (referringElement.Descendants("objsur").Where(
						objSurrElement => objSurrElement.Attribute("guid").Value.ToLower() == targetGuidAsString)).ToList())
					{
						var propElement = danglingRef.Parent;
						danglingRef.Remove();
						if (!propElement.HasAttributes && !propElement.HasElements)
							emptyPropElements.Add(propElement);
					}
					foreach (var emptyPropElement in emptyPropElements)
						emptyPropElement.Remove(); // Remove now empty property element.
					// Reset the xml.
					referringDto.Xml = referringElement.ToString();
					dtoRepos.Update(referringDto);
				}
			}
		}
开发者ID:bbriggs,项目名称:FieldWorks,代码行数:40,代码来源:DataMigrationServices.cs

示例6: RemoveIncludingOwnedObjects

		/// <summary>
		/// Remove <paramref name="goner"/> and everything it owns.
		/// Be sure to include removing goner from its optional owning property.
		/// </summary>
		internal static void RemoveIncludingOwnedObjects(IDomainObjectDTORepository dtoRepos, DomainObjectDTO goner, bool removeFromOwner)
		{
			DomainObjectDTO gonerActual;
			if (!dtoRepos.TryGetValue(goner.Guid, out gonerActual))
				return; // Not in repos.

			if (removeFromOwner)
			{
				var ownerDto = dtoRepos.GetOwningDTO(goner);
				if (ownerDto != null)
				{
					var ownerElement = XElement.Parse(ownerDto.Xml);
					var ownObjSurElement = (from objSurNode in ownerElement.Descendants("objsur")
											where objSurNode.Attribute("t").Value == "o" && objSurNode.Attribute("guid").Value.ToLower() == goner.Guid.ToLower()
											select objSurNode).FirstOrDefault(); // Ought not be null, but play it safe.
					if (ownObjSurElement != null)
						ownObjSurElement.Remove();

					if (!RemoveEmptyPropertyElements(dtoRepos, ownerDto, ownerElement))
					{
						// No empty property elements removed, so we have to do the update.
						UpdateDTO(dtoRepos, ownerDto, ownerElement.ToString());
					}
				}
			}

			foreach (var ownedDto in dtoRepos.GetDirectlyOwnedDTOs(goner.Guid))
				RemoveIncludingOwnedObjects(dtoRepos, ownedDto, false);

			dtoRepos.Remove(goner);
		}
开发者ID:bbriggs,项目名称:FieldWorks,代码行数:35,代码来源:DataMigrationServices.cs

示例7: ValidateStyleReference

		private void ValidateStyleReference(IDomainObjectDTORepository repoDTO, XElement xeStyle, string sRefName)
		{
			XElement xeOnly = null;
			XElement xeObjsur = null;
			foreach (XElement xeRef in xeStyle.Descendants(sRefName))
			{
				Assert.IsNull(xeOnly, sRefName + " should appear only once in an StStyle object");
				xeOnly = xeRef;
				foreach (XElement xeLink in xeRef.Descendants("objsur"))
				{
					Assert.IsNull(xeObjsur, "objsur should appear only once in a " + sRefName + " field");
					xeObjsur = xeLink;
					XAttribute xa = xeObjsur.Attribute("guid");
					Assert.IsNotNull(xa, sRefName + "/objsur must have a guid attribute");
					DomainObjectDTO dto;
					Assert.IsTrue(repoDTO.TryGetValue(xa.Value, out dto), sRefName + " must point to a valid object");
					Assert.AreEqual("StStyle", dto.Classname, sRefName + " must point to a style");
					DomainObjectDTO dtoOwner;
					Assert.IsTrue(repoDTO.TryGetOwner(xa.Value, out dtoOwner), sRefName + " must point to a style with a valid owner");
					Assert.AreEqual("LangProject", dtoOwner.Classname, sRefName + " must point to a style owned by LangProject");
				}
				Assert.IsNotNull(xeObjsur, "objsur should appear once in a " + sRefName + " field");
			}
		}
开发者ID:bbriggs,项目名称:FieldWorks,代码行数:24,代码来源:DataMigration7000018Tests.cs

示例8: CheckPhPhonData

		private static void CheckPhPhonData(DomainObjectDTO dtoPhPhonDataTest, IDomainObjectDTORepository dtoRepos)
		{
			var eltWmbPhPhonDataTest = XElement.Parse(dtoPhPhonDataTest.Xml);
			// get phon rule feats
			var eltPhonRuleFeatsTest = eltWmbPhPhonDataTest.Element("PhonRuleFeats");
			Assert.IsNotNull(eltPhonRuleFeatsTest);
			var eltObjsurTest = eltPhonRuleFeatsTest.Element("objsur");
			Assert.IsNotNull(eltObjsurTest);
			// get possibility list itself
			var guidPossibilityListTest = eltObjsurTest.Attribute("guid").Value;
			Assert.IsNotNull(guidPossibilityListTest);
			DomainObjectDTO dtoCmPossiblityTest;
			dtoRepos.TryGetValue(guidPossibilityListTest, out dtoCmPossiblityTest);
			Assert.IsNotNull(dtoCmPossiblityTest);
			var eltWmbCmPossibilityListTest = XElement.Parse(dtoCmPossiblityTest.Xml);
			Assert.IsNotNull(eltWmbCmPossibilityListTest);
			var attrCmPossiblityListClassTest = eltWmbCmPossibilityListTest.Attribute("class").Value;
			Assert.AreEqual("CmPossibilityList", attrCmPossiblityListClassTest);
			var attrCmPossiblityListOwnerGuidTest = eltWmbCmPossibilityListTest.Attribute("ownerguid").Value;
			Assert.AreEqual(dtoPhPhonDataTest.Guid, attrCmPossiblityListOwnerGuidTest);
		}
开发者ID:bbriggs,项目名称:FieldWorks,代码行数:21,代码来源:DataMigration7000056Tests.cs

示例9: PerformMigration

		/// ------------------------------------------------------------------------------------
		/// <summary>
		/// Migrate data from 7000009 to 7000010.
		/// </summary>
		/// ------------------------------------------------------------------------------------
		public void PerformMigration(IDomainObjectDTORepository dtoRepos)
		{
			DataMigrationServices.CheckVersionNumber(dtoRepos, 7000009);

			// The old objects to be removed go into 'goners'.
			// In this case, it is the annotation defn type objects.
			var goners = new List<DomainObjectDTO>((int) (dtoRepos.Count*0.80));
			DomainObjectDTO dtoGoner;
			if (dtoRepos.TryGetValue(DataMigrationServices.kSegmentAnnDefnGuid, out dtoGoner))
				goners.Add(dtoGoner);
			if (dtoRepos.TryGetValue(DataMigrationServices.kTwficAnnDefnGuid, out dtoGoner))
				goners.Add(dtoGoner);
			if (dtoRepos.TryGetValue(DataMigrationServices.kPficAnnDefnGuid, out dtoGoner))
				goners.Add(dtoGoner);
			if (dtoRepos.TryGetValue(DataMigrationServices.kFreeTransAnnDefnGuid, out dtoGoner))
				goners.Add(dtoGoner);
			if (dtoRepos.TryGetValue(DataMigrationServices.kLitTransAnnDefnGuid, out dtoGoner))
				goners.Add(dtoGoner);
			if (dtoRepos.TryGetValue(DataMigrationServices.kTextTagAnnDefnGuid, out dtoGoner))
				goners.Add(dtoGoner);
			// Some old projects somehow didn't get this annotation type, so make all of these
			// dependent on actually existing.  (See LT-11416.)
			if (dtoRepos.TryGetValue(DataMigrationServices.kDiscourseChartComponentAnnDefnGuid, out dtoGoner))
				goners.Add(dtoGoner);

			// Don't delete it, since it owns two other type defns which are not part of this DM.
			//goners.Add(domainObjectDtoRepository.GetDTO(CmAnnotationDefnTags.kguidAnnNote.ToString()));

			// Gather up CmBaseAnnotations of interest.
			// Typically (if there are enough to be a possible problem, anyway) most of them are xfics.
			// Therefore the dictionaries which will get one entry per xfic are initialized to be large
			// enough to hold an item for each annotation.
			// This wastes a little memory, but repeatedly resizing the dictionaries can waste a LOT more,
			// as chunks of address space become unuseable. It also saves time.
			int annotationCount = dtoRepos.AllInstancesSansSubclasses("CmBaseAnnotation").Count();
			var paraToOldSegments = new Dictionary<string, SortedList<int, byte[]>>(annotationCount/5);
			// Gather old segments that have duplicate BeginOffsets for a given paragraph.
			var paraToDuplicateOldSegments = new Dictionary<string, SortedList<int, List<byte[]>>>();
			var paraToOldXfics = new Dictionary<string, SortedList<int, byte[]>>(/*annotationCount/24*/);
			// Gather old xfics that have duplicate BeginOffsets for a given paragraph.
			var paraToDuplicateOldXfics = new Dictionary<string, SortedList<int, List<byte[]>>>();
			// Key is old ann guid. Value is old ann XElement.
			var oldCCAs = new Dictionary<string, byte[]>(annotationCount/5);
			// Key is old CCA ann guid. Value is the new CCA guid.
			var ccaGuidMap = new Dictionary<Guid, Guid>(annotationCount);
			// Keep track of xfics with inbound refs from Text tags and/or discourse,
			// which is used to help select among duplicates.
			var xficHasTextOrDiscourseBackReference = new Dictionary<string, int>(annotationCount/5);
			CollectBaseAnnotations(dtoRepos, goners,
				oldCCAs, ccaGuidMap, xficHasTextOrDiscourseBackReference,
				paraToDuplicateOldSegments, paraToOldSegments,
				paraToDuplicateOldXfics, paraToOldXfics);

			// Gather up CmIndirectAnnotations of interest.
			var freeTrans = new Dictionary<string, List<byte[]>>(annotationCount/3);
			var litTrans = new Dictionary<string, List<byte[]>>();
			var notes = new Dictionary<string, List<byte[]>>();
			var oldCCRows = new List<byte[]>();
			var oldTextTags = new List<byte[]>();
			CollectIndirectAnnotations(dtoRepos, goners,
				oldCCAs, ccaGuidMap, xficHasTextOrDiscourseBackReference,
				oldCCRows,
				oldTextTags,
				freeTrans, litTrans,
				notes);

			// Delete (right now, not later) any CCRs and any CCAs the CCRs reference,
			// which are not referenced by any DsConstChart (old Rows ref col prop).
			// Also, remove any immediately deleted CCRs and CCAs from the 'goners'
			// delayed deletion list, and the 'oldCCAs' and 'oldCCRows' lists.
			// We do this deletion/removal, so the duplicate selection
			// code that is called next won't have to worry about such clutter.
			DeleteImmediatelyAllUnlovedCCRs(dtoRepos, goners, xficHasTextOrDiscourseBackReference,
				oldCCRows, oldCCAs, ccaGuidMap);

			// Sort out duplicates.
			SelectFromDuplicates(dtoRepos,
				xficHasTextOrDiscourseBackReference,
				paraToOldXfics, paraToDuplicateOldXfics);
			paraToDuplicateOldSegments.Clear();
			paraToDuplicateOldXfics.Clear();
			paraToDuplicateOldSegments = null;
			paraToDuplicateOldXfics = null;

			// Look for any xfics that have multiple CCA backrefs.
			// If we find any, look through backrefs of CCAs and backrefs of
			// xfic.BeginObj to see which, if any, CCA is not in a chart BasedOn the right text.
			SortOutMultipleXficBackrefs(dtoRepos, xficHasTextOrDiscourseBackReference,
				oldCCAs, ccaGuidMap, oldCCRows, goners);

			// Feed 'halfBakedCcwgItems' into ProcessParagraphs (and thence, into the seg processor).
			// Then, the new kvp 'Values' can be finished (seg & twfic indices).
			// kvp Key is the orginal twfic/pfic element.
			// Kvp Value is a new ConstChartWordGroup that uses the xfic.
			var halfBakedCcwgItems = ProcessDiscourseData(
//.........这里部分代码省略.........
开发者ID:bbriggs,项目名称:FieldWorks,代码行数:101,代码来源:DataMigration7000010.cs

示例10: GetListDto

		private static DomainObjectDTO GetListDto(IDomainObjectDTORepository dtoRepos,
			XElement owningElem, string flidName)
		{
			var xPath = flidName + "/objsur";
			var objsurElem = owningElem.XPathSelectElement(xPath);
			if (objsurElem == null)
				return null;
			var guid = objsurElem.Attribute("guid").Value;
			DomainObjectDTO dto;
			if(dtoRepos.TryGetValue(guid, out dto))
				return dto;
			return null;
		}
开发者ID:bbriggs,项目名称:FieldWorks,代码行数:13,代码来源:DataMigration7000022.cs

示例11: DeleteUnneededGoners

		private static void DeleteUnneededGoners(IDomainObjectDTORepository dtoRepos,
			IEnumerable<DomainObjectDTO> goners, ICollection<string> neededGoners)
		{
			// We have run out of memory during this data migration on large projects.  (See
			// FWR-3849.) One possible reason is that we can make 15000+ copies of LangProject
			// as we slowly squeeze out the owning links to Annotations.  So let's collect them
			// all up at once, and remove them with a single change to the LangProject dto.
			var dtoLangProject = dtoRepos.AllInstancesSansSubclasses("LangProject").FirstOrDefault();
			if (dtoLangProject != null)
			{
				var xeLangProject = XElement.Parse(dtoLangProject.Xml);
				var cAnn = xeLangProject.Descendants("objsur").
					Where(t => (t.Attribute("t") != null && t.Attribute("t").Value == "o")).Count();
				if (cAnn > 0)
				{
					var gonersInLangProject = new List<DomainObjectDTO>(cAnn);
					foreach (var goner in goners)
					{
						DomainObjectDTO gonerActual;
						if (!dtoRepos.TryGetValue(goner.Guid, out gonerActual))
							continue; // Not in repos.
						if (neededGoners.Contains(goner.Guid))
							continue; // still need this in the repository.
						var ownerDto = dtoRepos.GetOwningDTO(goner);
						if (ownerDto != null && ownerDto.Guid == dtoLangProject.Guid)
							gonersInLangProject.Add(gonerActual);
					}
					if (gonersInLangProject.Count > 0)
					{
						DataMigrationServices.RemoveMultipleIncludingOwnedObjects(dtoRepos,
							gonersInLangProject, dtoLangProject);
						gonersInLangProject.Clear();
						// We don't try removing those from goners because that operation may
						// involve a linear lookup in the list to find the object to remove.
						// And RemoveIncludingOwnedObjects() checks whether the goner still
						// exists before doing anything else.
					}
				}
			}
			// Remove old stuff.
			foreach (var goner in goners)
			{
				if (neededGoners.Contains(goner.Guid))
					continue;
				DataMigrationServices.RemoveIncludingOwnedObjects(dtoRepos, goner, true);
			}
		}
开发者ID:bbriggs,项目名称:FieldWorks,代码行数:47,代码来源:DataMigration7000010.cs

示例12: VerifyEntryType

		/// <summary>
		/// Verify that a given LexEntryType exists, and that IsProtected is set to true.
		/// </summary>
		private void VerifyEntryType(IDomainObjectDTORepository repoDto, string guid)
		{
			DomainObjectDTO dto;
			Assert.IsTrue(repoDto.TryGetValue(guid, out dto),
				String.Format("Check for known guid of LexEntryType ({0}).", m_mapGuidToName[guid]));
			var xeType = XElement.Parse(dto.Xml);
			Assert.IsNotNull(xeType);
			var xeProt = xeType.XPathSelectElement("IsProtected");
			Assert.IsNotNull(xeProt,
				String.Format("IsProtected should exist ({0}).", m_mapGuidToName[guid]));
			var xaVal = xeProt.Attribute("val");
			Assert.IsNotNull(xaVal,
				String.Format("IsProtected should have a val attribute ({0}).", m_mapGuidToName[guid]));
			Assert.AreEqual("true", xaVal.Value.ToLowerInvariant(),
				String.Format("IsProtected should be true ({0}).", m_mapGuidToName[guid]));
		}
开发者ID:bbriggs,项目名称:FieldWorks,代码行数:19,代码来源:DataMigration7000042Tests.cs

示例13: VerifyLexEntryRefs

		/// <summary>
		/// Verify that all LexEntryRef objects point to valid LexEntryType objects.
		/// </summary>
		private void VerifyLexEntryRefs(IDomainObjectDTORepository repoDto)
		{
			foreach (var dtoRef in repoDto.AllInstancesWithSubclasses("LexEntryRef"))
			{
				var xeRef = XElement.Parse(dtoRef.Xml);
				foreach (var objsur in xeRef.XPathSelectElements("ComplexEntryTypes/objsur"))
				{
					var xaGuid = objsur.Attribute("guid");
					Assert.IsNotNull(xaGuid, "objsur elements should always have a guid attribute.");
					var guid = xaGuid.Value;
					DomainObjectDTO dtoType;
					Assert.IsTrue(repoDto.TryGetValue(guid, out dtoType), "LexEntryRef.ComplexEntryTypes should point to valid objects.");
				}
				foreach (var objsur in xeRef.XPathSelectElements("VariantEntryTypes/objsur"))
				{
					var xaGuid = objsur.Attribute("guid");
					Assert.IsNotNull(xaGuid, "objsur elements should always have a guid attribute.");
					var guid = xaGuid.Value;
					DomainObjectDTO dtoType;
					Assert.IsTrue(repoDto.TryGetValue(guid, out dtoType), "LexEntryRef.VariantEntryTypes should point to valid objects.");
				}
			}
		}
开发者ID:bbriggs,项目名称:FieldWorks,代码行数:26,代码来源:DataMigration7000042Tests.cs

示例14: VerifySubpossibilities

		private void VerifySubpossibilities(IDomainObjectDTORepository repoDto, DomainObjectDTO dtoPoss)
		{
			var xePoss = XElement.Parse(dtoPoss.Xml);
			foreach (var objsur in xePoss.XPathSelectElements("SubPossibilities/objsur"))
			{
				var xaGuid = objsur.Attribute("guid");
				Assert.IsNotNull(xaGuid, "objsur elements should always have a guid attribute.");
				var guid = xaGuid.Value;
				string name;
				DomainObjectDTO dtoSub;
				Assert.IsTrue(repoDto.TryGetValue(guid, out dtoSub), "SubPossibility Lists should point to valid objects.");
				VerifySubpossibilities(repoDto, dtoSub);
			}
		}
开发者ID:bbriggs,项目名称:FieldWorks,代码行数:14,代码来源:DataMigration7000042Tests.cs

示例15: VerifyTypeLists

		/// <summary>
		/// Verify that the ComplexEntryTypes and VariantEntryTypes lists contain all of the
		/// standard LexEntryType objects, and that that they point only to valid LexEntryType
		/// objects.
		/// </summary>
		private void VerifyTypeLists(IDomainObjectDTORepository repoDto)
		{
			foreach (var dtoList in repoDto.AllInstancesWithSubclasses("CmPossibilityList"))
			{
				var xeList = XElement.Parse(dtoList.Xml);
				foreach (var objsur in xeList.XPathSelectElements("Possibilities/objsur"))
				{
					var xaGuid = objsur.Attribute("guid");
					Assert.IsNotNull(xaGuid, "objsur elements should always have a guid attribute.");
					var guid = xaGuid.Value;
					string name;
					DomainObjectDTO dtoPoss;
					Assert.IsTrue(repoDto.TryGetValue(guid, out dtoPoss), "Possibility Lists should point to valid objects.");
					VerifySubpossibilities(repoDto, dtoPoss);
				}
			}
		}
开发者ID:bbriggs,项目名称:FieldWorks,代码行数:22,代码来源:DataMigration7000042Tests.cs


注:本文中的IDomainObjectDTORepository.TryGetValue方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。