} // public static EM.Import_EntityResolution Import_EntityResolution_GetByCtid(string ctid) { EM.Import_EntityResolution entity = new EM.Import_EntityResolution(); if (string.IsNullOrWhiteSpace(ctid)) { return(entity); } try { using (var context = new EntityContext()) { entity = context.Import_EntityResolution .FirstOrDefault(s => s.ReferencedCtid.ToLower() == ctid.ToLower()); if (entity != null && entity.Id > 0) { } } } catch (Exception ex) { LoggingHelper.LogError(ex, thisClassName + ".Import_EntityResolution_GetByCtid"); } return(entity); } //
/// <summary> /// Get record by provided URI /// TODO - we should force all to be /resources /// </summary> /// <param name="referencedAtId"></param> /// <returns></returns> public static EM.Import_EntityResolution Import_EntityResolution_GetById(string referencedAtId) { EM.Import_EntityResolution entity = new EM.Import_EntityResolution(); if (string.IsNullOrWhiteSpace(referencedAtId)) { return(entity); } //consider, although we already have a ctid lookp fall back string altId = ""; if (referencedAtId.ToLower().IndexOf("/graph/ce") > -1) { altId = referencedAtId.Replace("/graph/", "/resources/"); } else { altId = referencedAtId.Trim(); //altId = referencedAtId.Replace( "/resources", "/graph" ); } try { using (var context = new EntityContext()) { entity = context.Import_EntityResolution .FirstOrDefault(s => s.ReferencedId.ToLower() == referencedAtId.ToLower() || s.ReferencedCtid.ToLower() == referencedAtId.ToLower()); if (entity != null && entity.Id > 0) { if (!(entity.IsResolved ?? false)) { } //check - if entity exists. If not, then probably deleted, and so should remove this record var e = EntityManager.GetEntity((Guid)entity.EntityUid, false); if (e == null || e.Id == 0) { //21-04-30 - not sure we should be deleting these???? // - this thought occurred after importing Ivy Tech from prod - resulting in all of the owns (credentials etc) being added to pending string statusMessage = ""; Delete_Import_EntityResolution(entity.Id, ref statusMessage); return(new EM.Import_EntityResolution()); } else { //check if entityId is accurate if (entity.ReferencedEntityTypeId != e.EntityTypeId) { } } } } } catch (Exception ex) { LoggingHelper.LogError(ex, thisClassName + ".Import_EntityResolution_GetById"); } return(entity); } //
/// <summary> /// Get record by provided URI /// TODO - we should force all to be /resources /// </summary> /// <param name="referencedAtId"></param> /// <returns></returns> public static EM.Import_EntityResolution Import_EntityResolution_GetById(string referencedAtId) { EM.Import_EntityResolution entity = new EM.Import_EntityResolution(); if (string.IsNullOrWhiteSpace(referencedAtId)) { return(entity); } //consider, although we already have a ctid lookp fall back string altId = ""; if (referencedAtId.ToLower().IndexOf("/graph/ce") > -1) { altId = referencedAtId.Replace("/graph/", "/resources/"); } else { altId = referencedAtId.Trim(); //altId = referencedAtId.Replace( "/resources", "/graph" ); } try { using (var context = new EntityContext()) { entity = context.Import_EntityResolution .FirstOrDefault(s => s.ReferencedId.ToLower() == referencedAtId.ToLower() || s.ReferencedCtid.ToLower() == referencedAtId.ToLower()); if (entity != null && entity.Id > 0) { if (!(entity.IsResolved ?? false)) { //check } } } } catch (Exception ex) { LoggingHelper.LogError(ex, thisClassName + ".Import_EntityResolution_GetById"); } return(entity); } //
} // public static EM.Import_EntityResolution Import_EntityResolution_GetByCtid(string ctid) { EM.Import_EntityResolution entity = new EM.Import_EntityResolution(); if (string.IsNullOrWhiteSpace(ctid)) { return(entity); } try { using (var context = new EntityContext()) { entity = context.Import_EntityResolution .FirstOrDefault(s => s.ReferencedCtid.ToLower() == ctid.ToLower()); if (entity != null && entity.Id > 0) { //check - if entity exists. If not, then probably deleted, and so should remove this record var e = EntityManager.GetEntity(( Guid )entity.EntityUid, false); if (e == null || e.Id == 0) { string statusMessage = ""; Delete_Import_EntityResolution(entity.Id, ref statusMessage); return(new EM.Import_EntityResolution()); } else { //check if entityId is accurate if (entity.ReferencedEntityTypeId != e.EntityTypeId) { } } } } } catch (Exception ex) { LoggingHelper.LogError(ex, thisClassName + ".Import_EntityResolution_GetByCtid"); } return(entity); } //
public static void HandleResolvedEntity(EM.Import_EntityResolution entity) { }
//Import_EntityResolution public int Import_EntityResolutionAdd(string referencedAtId, string referencedCtid, int referencedEntityTypeId, Guid entityUid, int newEntityId, bool isResolved, ref List <string> messages, bool setAsResolved = false) { EM.Import_EntityResolution efEntity = new EM.Import_EntityResolution(); using (var context = new EntityContext()) { try { //first determine if referencedAtId exists EM.Import_EntityResolution entity = Import_EntityResolution_GetById(referencedAtId); if (entity == null || entity.Id == 0) { //try by ctid entity = Import_EntityResolution_GetByCtid(referencedCtid); } if (entity != null && entity.Id > 0) { //indicates can ignore add, but need a way to show has been resolved //and on being resolved, need to call methods to activate entities like roles //18-03-24 mp - no action should be necessary as roles exist if (setAsResolved && (entity.IsResolved ?? false) == false) { entity.IsResolved = true; if (newEntityId > 0) { entity.EntityBaseId = newEntityId; } if (referencedEntityTypeId > 0) { entity.ReferencedEntityTypeId = referencedEntityTypeId; } int count2 = context.SaveChanges(); return(entity.Id); } //was returning zero? //return 0; return(entity.Id); } else { if ((referencedAtId ?? "").Length == 39) { LoggingHelper.DoTrace(3, thisClassName + string.Format(".Import_EntityResolutionAdd. Unexpected ctid in referencedAtId: {0}, referencedEntityTypeId: {1}, entityUid: {2} ", referencedAtId, referencedEntityTypeId, entityUid)); } efEntity.Created = System.DateTime.Now; efEntity.ReferencedId = referencedAtId.Replace("/graph/", "/resources").ToLower(); efEntity.ReferencedCtid = (referencedCtid ?? "").ToLower(); efEntity.ReferencedEntityTypeId = referencedEntityTypeId; efEntity.EntityBaseId = newEntityId; efEntity.EntityUid = entityUid; efEntity.IsResolved = setAsResolved; context.Import_EntityResolution.Add(efEntity); int count = context.SaveChanges(); if (count > 0) { return(efEntity.Id); } else { //?no info on error messages.Add("Import_EntityResolutionAdd - Error - the add was not successful. "); string message = string.Format(thisClassName + ".Import_EntityResolutionAdd() Failed. The process appeared to not work, but was not an exception, so we have no message, or no clue. referencedAtId: {0}; referencedEntityTypeId: {1}", referencedAtId, referencedEntityTypeId); EmailManager.NotifyAdmin(thisClassName + ".Import_EntityResolutionAdd() Failed", message); } } } catch (System.Data.Entity.Validation.DbEntityValidationException dbex) { string message = HandleDBValidationError(dbex, thisClassName + ".Import_EntityResolutionAdd() ", "Import"); messages.Add("Error - the save was not successful. " + message); } catch (Exception ex) { LoggingHelper.LogError(ex, thisClassName + string.Format(".Import_EntityResolutionAdd(), referencedAtId: {0}; referencedEntityTypeId: {1}", referencedAtId, referencedEntityTypeId)); messages.Add("Unexpected system error. The site administration has been notified."); } } return(0); }
/// <summary> /// Attempt to resolve an organization reference by either a registry URI or CTID /// </summary> /// <param name="referencedAtId">Registry URI or CTID</param> /// <param name="status"></param> /// <param name="isResolved"></param> /// <returns></returns> public static Guid ResolveOrgByRegistryAtId(string referencedAtId, ref SaveStatus status, ref bool isResolved) { Guid entityUid = new Guid(); string ctid = ""; List <string> messages = new List <string>(); //test direct, and fall back to by ctid?? //should only handle Uri's for now if (referencedAtId.Trim().ToLower().IndexOf("http") == 0) { //should probably ensure a registry url ctid = ExtractCtid(referencedAtId.Trim()); EM.Import_EntityResolution item = ImportManager.Import_EntityResolution_GetById(referencedAtId); if (item != null && item.Id > 0) { isResolved = item.IsResolved != null ? ( bool )item.IsResolved : false; //need to make sure valid //actually should always be valid //if ( BaseFactory.IsGuidValid( item.EntityUid ) ) return(( Guid )item.EntityUid); //add activity or error //return entityUid; } else { if (IsCtidValid(ctid, ref messages)) { item = ImportManager.Import_EntityResolution_GetByCtid(ctid); if (item != null && item.Id > 0) { isResolved = item.IsResolved != null ? ( bool )item.IsResolved : false; return(( Guid )item.EntityUid); } } } } else { ctid = ExtractCtid(referencedAtId.Trim()); if (IsCtidValid(ctid, ref messages)) { EM.Import_EntityResolution item2 = ImportManager.Import_EntityResolution_GetByCtid(ctid); if (item2 != null && item2.Id > 0) { isResolved = item2.IsResolved != null ? ( bool )item2.IsResolved : false; return(( Guid )item2.EntityUid); } } } //add an import entry ImportManager importManager = new ImportManager(); entityUid = Guid.NewGuid(); string statusMsg = ""; int orgId = new OrganizationManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (orgId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } else { int id = importManager.Import_EntityResolutionAdd(referencedAtId, ctid, CodesManager.ENTITY_TYPE_ORGANIZATION, entityUid, orgId, false, ref messages); //need to create a placeholder if (id == 0) { status.AddError("Error - failed to add Import_EntityResolution for " + referencedAtId); status.AddWarningRange(messages); return(new Guid()); } } return(entityUid); }
public static int ResolveEntityByRegistryAtId(string referencedAtId, int entityTypeId, ref SaveStatus status, ref bool isResolved) { Guid entityUid = Guid.NewGuid(); int newEntityId = 0; string ctid = ""; List <string> messages = new List <string>(); //test direct, and fall back to by ctid?? //should only handle Uri's for now if (referencedAtId.Trim().ToLower().IndexOf("http") == 0) { //should probably ensure a registry url ctid = ExtractCtid(referencedAtId.Trim()); LoggingHelper.DoTrace(7, string.Format("ResolutionServices.ResolveEntityByRegistryAtId: EntityTypeId: {0}, referencedAtId: {1} ", entityTypeId, referencedAtId)); EM.Import_EntityResolution item = ImportManager.Import_EntityResolution_GetById(referencedAtId); if (item != null && item.Id > 0 && (item.EntityBaseId ?? 0) > 0) { isResolved = item.IsResolved != null ? ( bool )item.IsResolved : false; //need to make sure valid //actually should always be valid //if ( BaseFactory.IsGuidValid( item.EntityUid ) ) return((int)item.EntityBaseId); } else { LoggingHelper.DoTrace(6, string.Format("ResolutionServices. **FAILED** ResolveEntityByRegistryAtId: EntityTypeId: {0}, target.CtdlId: {1}. Trying with CTID: {2}", entityTypeId, referencedAtId, ctid)); if (IsCtidValid(ctid, ref messages)) { item = ImportManager.Import_EntityResolution_GetByCtid(ctid); if (item != null && item.Id > 0 && (item.EntityBaseId ?? 0) > 0) { isResolved = item.IsResolved != null ? ( bool )item.IsResolved : false; return(( int )item.EntityBaseId); } } } } else { ctid = ExtractCtid(referencedAtId.Trim()); LoggingHelper.DoTrace(7, string.Format("ResolutionServices.ResolveEntityByRegistryAtId. referencedAtId appears to be a ctid EntityTypeId: {0}, referencedAtId: {1}, ctid: {2} ", entityTypeId, referencedAtId, ctid)); if (IsCtidValid(ctid, ref messages)) { EM.Import_EntityResolution item2 = ImportManager.Import_EntityResolution_GetByCtid(ctid); if (item2 != null && item2.Id > 0 && (item2.EntityBaseId ?? 0) > 0) { isResolved = item2.IsResolved != null ? ( bool )item2.IsResolved : false; return(( int )item2.EntityBaseId); } else { LoggingHelper.DoTrace(5, string.Format("ResolutionServices.ResolveEntityByRegistryAtId. DID NOT RESOLVE VIA CTID referencedAtId appears to be a ctid EntityTypeId: {0}, ctid: {2} ", entityTypeId, referencedAtId, ctid)); } } } //add an import entry - need to do the base first ImportManager importManager = new ImportManager(); string statusMsg = ""; if (entityTypeId == CodesManager.ENTITY_TYPE_CREDENTIAL) { newEntityId = new CredentialManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_ASSESSMENT_PROFILE) { newEntityId = new AssessmentManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_LEARNING_OPP_PROFILE) { newEntityId = new LearningOpportunityManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_COST_MANIFEST) { newEntityId = new CostManifestManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_CONDITION_MANIFEST) { newEntityId = new ConditionManifestManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_PATHWAY) { newEntityId = new PathwayManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_PATHWAY_COMPONENT) { newEntityId = new PathwayComponentManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_COMPETENCY_FRAMEWORK) { //actually should not happen - confirm the cf must exist or will be rejected by API newEntityId = new CompetencyFrameworkManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_TRANSFER_VALUE_PROFILE) { //actually should not happen - confirm the tvp must exist or will be rejected by API newEntityId = new TransferValueProfileManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } } // if (newEntityId > 0) { int id = importManager.Import_EntityResolutionAdd(referencedAtId, ctid, entityTypeId, entityUid, newEntityId, false, ref messages, true); //need to create a placeholder if (id == 0) { status.AddError("Error - failed to add Import_EntityResolution for " + referencedAtId); status.AddWarningRange(messages); //this may be wiping out newEntityId //return 0; } } return(newEntityId); }
public static Guid ResolveEntityByRegistryAtIdToGuid(string property, string referencedAtId, int entityTypeId, ref SaveStatus status, ref bool isResolved) { Guid entityUid = new Guid(); string ctid = ""; int newEntityId = 0; if (string.IsNullOrWhiteSpace(referencedAtId)) { return(entityUid); } List <string> messages = new List <string>(); //test direct, and fall back to by ctid?? //should only handle Uri's for now if (referencedAtId.Trim().ToLower().IndexOf("http") == 0) { //should probably ensure a registry url ctid = ExtractCtid(referencedAtId.Trim()); if (ctid == "ce-fa6c139f-0615-401f-9920-6ec8c445baca") { } EM.Import_EntityResolution item = ImportManager.Import_EntityResolution_GetById(referencedAtId); if (item != null && item.Id > 0) { isResolved = item.IsResolved != null ? ( bool )item.IsResolved : false; //need to make sure valid //actually should always be valid //if ( BaseFactory.IsGuidValid( item.EntityUid ) ) //20-07-30 mparsons - why is EntityUid returned here? //check this return(( Guid )item.EntityUid); } else { if (IsCtidValid(ctid, ref messages)) { item = ImportManager.Import_EntityResolution_GetByCtid(ctid); if (item != null && item.Id > 0) { isResolved = item.IsResolved != null ? ( bool )item.IsResolved : false; return(( Guid )item.EntityUid); } } } } else { ctid = ExtractCtid(referencedAtId.Trim()); if (IsCtidValid(ctid, ref messages)) { EM.Import_EntityResolution item2 = ImportManager.Import_EntityResolution_GetByCtid(ctid); if (item2 != null && item2.Id > 0) { isResolved = item2.IsResolved != null ? ( bool )item2.IsResolved : false; return(( Guid )item2.EntityUid); } } } //add an import entry ImportManager importManager = new ImportManager(); entityUid = Guid.NewGuid(); string statusMsg = ""; if (entityTypeId == CodesManager.ENTITY_TYPE_CREDENTIAL) { newEntityId = new CredentialManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError("Credential Add Pending failed for: " + property + ". " + statusMsg); entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_ASSESSMENT_PROFILE) { newEntityId = new AssessmentManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError("Assessment Add Pending failed for: " + property + ". " + statusMsg); entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_LEARNING_OPP_PROFILE) { newEntityId = new LearningOpportunityManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError("Learning Opportunity Add Pending failed for: " + property + ". " + statusMsg); entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_COST_MANIFEST) { //should know the parent org, add to this method newEntityId = new CostManifestManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError("CostManifest Add Pending failed for: " + property + ". " + statusMsg); entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_CONDITION_MANIFEST) { newEntityId = new ConditionManifestManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError("ConditionManifest Add Pending failed for: " + property + ". " + statusMsg); entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_TRANSFER_VALUE_PROFILE) { //not sure we will ever have a reference to a TVP? newEntityId = new TransferValueProfileManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError("TransferValue Add Pending failed for: " + property + ". " + statusMsg); entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_PATHWAY) { newEntityId = new PathwayManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError("Pathway Add Pending failed for: " + property + ". " + statusMsg); entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_PATHWAY_COMPONENT) { if (ctid == "ce-fa6c139f-0615-401f-9920-6ec8c445baca") { } //need pathwayCTID for this ce-abcb5fe0-8fde-4f06-9d70-860cd5bdc763 newEntityId = new PathwayComponentManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } } else { //for properties like organization.Offers, we don't know what the entity type is. //SO..... } if (BaseFactory.IsGuidValid(entityUid)) { int id = importManager.Import_EntityResolutionAdd(referencedAtId, ctid, entityTypeId, entityUid, newEntityId, false, ref messages); //need to create a placeholder if (id == 0) { status.AddError("Error - failed to add Import_EntityResolution for " + referencedAtId); status.AddWarningRange(messages); //return 0; } } return(entityUid); }
public static Guid ResolveEntityByRegistryAtIdToGuid(string referencedAtId, int entityTypeId, ref SaveStatus status, ref bool isResolved) { Guid entityUid = new Guid(); string ctid = ""; int newEntityId = 0; if (string.IsNullOrWhiteSpace(referencedAtId)) { return(entityUid); } List <string> messages = new List <string>(); //test direct, and fall back to by ctid?? //should only handle Uri's for now if (referencedAtId.Trim().ToLower().IndexOf("http") == 0) { //should probably ensure a registry url ctid = ExtractCtid(referencedAtId.Trim()); EM.Import_EntityResolution item = ImportManager.Import_EntityResolution_GetById(referencedAtId); if (item != null && item.Id > 0) { isResolved = item.IsResolved != null ? ( bool )item.IsResolved : false; //need to make sure valid //actually should always be valid //if ( BaseFactory.IsGuidValid( item.EntityUid ) ) return(( Guid )item.EntityUid); //add activity or error //return entityUid; } else { if (IsCtidValid(ctid, ref messages)) { item = ImportManager.Import_EntityResolution_GetByCtid(ctid); if (item != null && item.Id > 0) { isResolved = item.IsResolved != null ? ( bool )item.IsResolved : false; return(( Guid )item.EntityUid); } } } } else { ctid = ExtractCtid(referencedAtId.Trim()); if (IsCtidValid(ctid, ref messages)) { EM.Import_EntityResolution item2 = ImportManager.Import_EntityResolution_GetByCtid(ctid); if (item2 != null && item2.Id > 0) { isResolved = item2.IsResolved != null ? ( bool )item2.IsResolved : false; return(( Guid )item2.EntityUid); } } } //add an import entry ImportManager importManager = new ImportManager(); entityUid = Guid.NewGuid(); string statusMsg = ""; if (entityTypeId == CodesManager.ENTITY_TYPE_CREDENTIAL) { newEntityId = new CredentialManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_ASSESSMENT_PROFILE) { newEntityId = new AssessmentManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_LEARNING_OPP_PROFILE) { newEntityId = new LearningOpportunityManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_COST_MANIFEST) { //should know the parent org, add to this method newEntityId = new CostManifestManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } } else if (entityTypeId == CodesManager.ENTITY_TYPE_CONDITION_MANIFEST) { newEntityId = new ConditionManifestManager().AddPendingRecord(entityUid, ctid, referencedAtId, ref statusMsg); if (newEntityId == 0) { //need to log, and reset status.AddError(statusMsg); //need to know what property would need to be fixed - really shouldn't happen entityUid = new Guid(); } } else { //for properties like organization.Offers, we don't know what the entity type is. //SO..... } if (BaseFactory.IsGuidValid(entityUid)) { int id = importManager.Import_EntityResolutionAdd(referencedAtId, ctid, entityTypeId, entityUid, newEntityId, false, ref messages); //need to create a placeholder if (id == 0) { status.AddError("Error - failed to add Import_EntityResolution for " + referencedAtId); status.AddWarningRange(messages); //return 0; } } return(entityUid); }