/// <summary> /// Get a credential for detailed display /// </summary> /// <param name="id"></param> /// <param name="user"></param> /// <param name="skippingCache">If true, do not use the cached version</param> /// <returns></returns> public static ThisEntity GetDetail(int id, bool skippingCache = false) { CredentialRequest cr = new CredentialRequest(); cr.IsDetailRequest(); return(GetDetail(id, cr, skippingCache)); }
public static WMA.CredentialDetail GetDetailForAPI(int id, bool skippingCache = false) { CredentialRequest cr = new CredentialRequest(); cr.IsDetailRequest(); cr.IncludingProcessProfiles = false; var entity = EntityHelper.GetDetail(id, cr, skippingCache); return(MapToAPI(entity)); }
public static void CredentialMinimumMap(EM.Credential from, Credential to) { CredentialRequest cr = new CredentialRequest(); //probably too much cr.IsDetailRequest(); to.Id = from.Id; to.RowId = from.RowId; to.Name = from.Name; to.Description = from.Description; to.SubjectWebpage = from.SubjectWebpage; to.CTID = from.CTID; to.EntityStateId = (int)from.EntityStateId; // 16-06-15 mp - always include credential type //can be null for a pending record to.CredentialTypeId = ( int )(from.CredentialTypeId ?? 0); if (to.CredentialTypeId > 0) { CodeItem ct = CodesManager.Codes_PropertyValue_Get(to.CredentialTypeId); if (ct != null && ct.Id > 0) { to.CredentialType = ct.Title; to.CredentialTypeSchema = ct.SchemaName; } to.CredentialTypeEnum = EntityPropertyManager.FillEnumeration(to.RowId, CodesManager.PROPERTY_CATEGORY_CREDENTIAL_TYPE); to.CredentialTypeEnum.Items.Add(new EnumeratedItem() { Id = to.CredentialTypeId, Name = ct.Name, SchemaName = ct.SchemaName }); } if (from.ImageUrl != null && from.ImageUrl.Trim().Length > 0) { to.Image = from.ImageUrl; } else { to.Image = null; } if (IsValidDate(from.Created)) { to.Created = ( DateTime )from.Created; } to.AudienceLevelType = EntityPropertyManager.FillEnumeration(to.RowId, CodesManager.PROPERTY_CATEGORY_AUDIENCE_LEVEL); //to.Occupation = Entity_FrameworkItemManager.FillEnumeration( to.RowId, CodesManager.PROPERTY_CATEGORY_SOC ); to.Occupation = Reference_FrameworksManager.FillEnumeration(to.RowId, CodesManager.PROPERTY_CATEGORY_SOC); to.OtherOccupations = Entity_ReferenceManager.GetAll(to.RowId, CodesManager.PROPERTY_CATEGORY_SOC); //to.Industry = Entity_FrameworkItemManager.FillEnumeration( to.RowId, CodesManager.PROPERTY_CATEGORY_NAICS ); to.Industry = Reference_FrameworksManager.FillEnumeration(to.RowId, CodesManager.PROPERTY_CATEGORY_NAICS); to.OtherIndustries = Entity_ReferenceManager.GetAll(to.RowId, CodesManager.PROPERTY_CATEGORY_NAICS); to.InstructionalProgramType = Reference_FrameworksManager.FillEnumeration(to.RowId, CodesManager.PROPERTY_CATEGORY_CIP); to.Subject = Entity_ReferenceManager.GetAllSubjects(to.RowId); to.Keyword = Entity_ReferenceManager.GetAll(to.RowId, CodesManager.PROPERTY_CATEGORY_KEYWORD); //Added these because they were needed on the detail page - NA 6/1/2017 to.OwningAgentUid = from.OwningAgentUid ?? Guid.Empty; to.OwningOrganization = OrganizationManager.GetForSummary(to.OwningAgentUid); }
/// <summary> /// Get a minimal credential - typically for a link, or need just basic properties /// </summary> /// <param name="rowId"></param> /// <returns></returns> //public static ThisEntity GetBasicCredentialAsLink( Guid rowId ) //{ // return CredentialManager.GetBasic( rowId, false, true ); //} //public static ThisEntity GetBasicCredential( Guid rowId ) //{ // return CredentialManager.GetBasic( rowId, false, false ); //} /// <summary> /// Get a credential for detailed display /// </summary> /// <param name="id"></param> /// <param name="user"></param> /// <param name="skippingCache">If true, do not use the cached version</param> /// <returns></returns> public static ThisEntity GetDetail(int id, bool skippingCache = false) { // string statusMessage = ""; int cacheMinutes = UtilityManager.GetAppKeyValue("credentialCacheMinutes", 0); DateTime maxTime = DateTime.Now.AddMinutes(cacheMinutes * -1); string key = "credential_" + id.ToString(); if (skippingCache == false && HttpRuntime.Cache[key] != null && cacheMinutes > 0) { var cache = ( CachedCredential )HttpRuntime.Cache[key]; try { if (cache.LastUpdated > maxTime) { LoggingHelper.DoTrace(6, string.Format("===CredentialServices.GetCredentialDetail === Using cached version of Credential, Id: {0}, {1}", cache.Item.Id, cache.Item.Name)); return(cache.Item); } } catch (Exception ex) { LoggingHelper.DoTrace(6, "===CredentialServices.GetCredentialDetail === exception " + ex.Message); } } else { LoggingHelper.DoTrace(8, string.Format("****** CredentialServices.GetCredentialDetail === Retrieving full version of credential, Id: {0}", id)); } DateTime start = DateTime.Now; CredentialRequest cr = new CredentialRequest(); cr.IsDetailRequest(); ThisEntity entity = CredentialManager.GetForDetail(id, cr); DateTime end = DateTime.Now; var elasped = end.Subtract(start).TotalSeconds; //Cache the output if more than specific seconds, //NOTE need to be able to force it for imports //&& elasped > 2 if (key.Length > 0 && cacheMinutes > 0) { var newCache = new CachedCredential() { Item = entity, LastUpdated = DateTime.Now }; if (HttpContext.Current != null) { if (HttpContext.Current.Cache[key] != null) { HttpRuntime.Cache.Remove(key); HttpRuntime.Cache.Insert(key, newCache); LoggingHelper.DoTrace(5, string.Format("===CredentialServices.GetCredentialDetail $$$ Updating cached version of credential, Id: {0}, {1}", entity.Id, entity.Name)); } else { LoggingHelper.DoTrace(5, string.Format("===CredentialServices.GetCredentialDetail ****** Inserting new cached version of credential, Id: {0}, {1}", entity.Id, entity.Name)); System.Web.HttpRuntime.Cache.Insert(key, newCache, null, DateTime.Now.AddMinutes(cacheMinutes), TimeSpan.Zero); } } } else { LoggingHelper.DoTrace(7, string.Format("===CredentialServices.GetCredentialDetail $$$$$$ skipping caching of credential, Id: {0}, {1}, elasped:{2}", entity.Id, entity.Name, elasped)); } return(entity); }