private void AdjustEntities() { // If an entity is marked to be removed but is also in the list // to import, don't remove it in the first place. List <TR2Entities> cleanedEntities = new List <TR2Entities>(); foreach (TR2Entities entity in EntitiesToRemove) { if (_aliasMap.ContainsKey(entity)) { // Check if we have another alias in the import list different from any // in the current level TR2Entities alias = TR2EntityUtilities.GetAliasForLevel(LevelName, entity); TR2Entities importAlias = TR2Entities.Lara; foreach (TR2Entities a in _aliasMap[entity]) { if (EntitiesToImport.Contains(a)) { importAlias = a; break; } } if (alias != importAlias) { cleanedEntities.Add(entity); } } else if (!EntitiesToImport.Contains(entity)) { cleanedEntities.Add(entity); } } EntitiesToRemove = cleanedEntities; }
public void LoadTargetsToCache(string recordType) { var recordsReferenced = new HashSet <string>(); recordsReferenced.Add(recordType); var thisTypeEntities = EntitiesToImport.Where(e => e.LogicalName == recordType); var fieldsForImport = GetFieldsToImport(thisTypeEntities, recordType); foreach (var entity in thisTypeEntities) { foreach (var field in fieldsForImport) { var value = entity.GetField(field); if (value is EntityReference entityReference) { var type = entityReference.LogicalName; if (!string.IsNullOrWhiteSpace(type) && !type.Contains(",") && !recordsReferenced.Contains(type)) { recordsReferenced.Add(type); } } } } CheckLoadCache(recordsReferenced); }