コード例 #1
0
        /// <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;
                    }
                }
            }
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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( );
            }
        }
コード例 #4
0
        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( );
            }
        }
コード例 #5
0
        /// <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 );
        }
コード例 #6
0
 private long GetId(string alias)
 {
     return(EntityIdentificationCache.GetId(alias));
 }