/// <summary> /// Converts the argument aliases to ids. /// </summary> /// <param name="structuredQuery">The structured query.</param> private void ConvertArgumentAliasesToIds(StructuredQuery structuredQuery) { if (structuredQuery?.Conditions == null || structuredQuery.Conditions.Count == 0) { return; } foreach (var condition in structuredQuery.Conditions) { if (condition.Arguments == null || condition.Arguments.Count == 0) { continue; } foreach (var arg in condition.Arguments) { if (string.IsNullOrWhiteSpace(arg.ValueString) || (!(arg.Type is ChoiceRelationshipType) && !(arg.Type is InlineRelationshipType))) { continue; } long id; if (EntityIdentificationCache.TryGetId(new EntityAlias(arg.ValueString), out id)) { arg.Value = id; } } } }
/// <summary> /// Gets an entity id from the specified alias /// </summary> /// <param name="alias"></param> /// <returns></returns> private long GetEntityId(string alias) { long id; if (!EntityIdentificationCache.TryGetId(new EntityAlias(alias), out id)) { return(-1); } return(id); }
/// <summary> /// Clear all caches /// </summary> public static void ClearCaches() { EntityCache.Instance.Clear(); Entity.GetLocalCache().Clear(); EntityFieldCache.Instance.Clear(); EntityRelationshipCache.Instance.Clear(); EntityIdentificationCache.Clear(); PerTenantEntityTypeCache.Instance.Clear(); Factory.EntityAccessControlService.ClearCaches(); MetadataCacheInvalidator.Instance.InvalidateMetadataCaches(MetadataCacheInvalidator.AllTenants); foreach (ICacheService cache in Factory.Current.Resolve <IEnumerable <ICacheService> >( )) { cache.Clear( ); } }
public void TestEntity_Constructor_TypeId_ValidTypeId( ) { long typeId = EntityIdentificationCache.GetId(new EntityAlias("core", "type")); Entity entity = null; try { entity = new Entity(typeId); entity.Save( ); } finally { entity?.Delete( ); } }
/// <summary> /// Invalidates the bulk request cache. /// </summary> private void InvalidateBulkRequestCache( ) { long coreSolution; long consoleTopMenu; var invalidationIds = new List <long>( ); if (EntityIdentificationCache.TryGetId(new EntityAlias("core", "solution"), out coreSolution)) { invalidationIds.Add(coreSolution); } if (EntityIdentificationCache.TryGetId(new EntityAlias("console", "topMenu"), out consoleTopMenu)) { invalidationIds.Add(consoleTopMenu); } //TODO: Can we now rely on the entity invalidation mechanism, or do we need to support that. //BulkResultCache.Invalidate( invalidationIds ); }
private long GetId(string alias) { return(EntityIdentificationCache.GetId(alias)); }