コード例 #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>
        /// 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 );
        }