Example #1
0
        public static List <WMA.ConditionManifest> GetConditionManifests(int organizationId)
        {
            var output = new List <WMA.ConditionManifest>();
            //make a common method - then can pass parent to use for details
            var plist = ConditionManifestManager.GetAll(organizationId, false);

            if (plist != null && plist.Any())
            {
                output = ServiceHelper.MapConditionManifests(plist, searchType);
            }
            return(output);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
        public static ConditionManifest GetBasic(int profileId)
        {
            ConditionManifest profile = ConditionManifestManager.GetBasic(profileId);

            return(profile);
        }
        public static ConditionManifest GetDetail(int profileId, AppUser user)
        {
            ConditionManifest profile = ConditionManifestManager.Get(profileId);

            return(profile);
        }
        //public bool Save( ConditionManifest entity, Guid parentUid, string action, AppUser user, ref string status, bool isQuickCreate = false )
        //{
        //	bool isValid = true;
        //	List<String> messages = new List<string>();
        //	//parent is the org - not sure if int or guid yet
        //	if ( entity == null || !BaseFactory.IsGuidValid( parentUid ) )
        //	{
        //		messages.Add( "Error - missing an identifier for the ConditionManifest Profile" );
        //		return false;
        //	}

        //	try
        //	{
        //		Entity e = EntityManager.GetEntity( parentUid );
        //		//remove this if properly passed from client
        //		//plus need to migrate to the use of EntityId
        //		entity.ParentId = e.Id;
        //		entity.CreatedById = entity.LastUpdatedById = user.Id;

        //		if ( new ConditionManifestManager().Save( entity, parentUid, user.Id, ref messages ) )
        //		{

        //			//if valid, status contains the cred id, category, and codeId
        //			status = "Successfully Saved Condition Manifest";
        //			activityMgr.AddActivity( "Condition Manifest", action, string.Format( "{0} added/updated Condition Manifest profile: {1}", user.FullName(), entity.ProfileName ), user.Id, 0, entity.Id );

        //		}
        //		else
        //		{
        //			status += string.Join( "<br/>", messages.ToArray() );
        //			return false;
        //		}
        //	}
        //	catch ( Exception ex )
        //	{
        //		LoggingHelper.LogError( ex, thisClassName + ".ConditionManifest_Save" );
        //		status = ex.Message;
        //		isValid = false;
        //	}

        //	return isValid;
        //}


        public static List <ConditionManifest> Search(int orgId, int pageNumber, int pageSize, ref int pTotalRows)
        {
            List <ConditionManifest> list = ConditionManifestManager.Search(orgId, pageNumber, pageSize, ref pTotalRows);

            return(list);
        }