public IRefAst MutateReference(IRefAst lookupKeyCurrent, MemberInfo key, object value)
            {
                var valueStr = GetStringValue(key, value);

                if (this.Facet)
                {
                    return(lookupKeyCurrent.RowKey.AsAstRef(valueStr));
                }
                return($"{lookupKeyCurrent.RowKey}{valueStr}".AsAstRef(lookupKeyCurrent.PartitionKey));
            }
        public bool TryGetIntegrationKey(string integrationId, MemberInfo key, object value,
                                         out IRefAst astLookup)
        {
            var integrationKey = (string)value;

            if (integrationKey.IsNullOrWhiteSpace())
            {
                astLookup = default;
                return(false);
            }
            var integrationKeyHashInt = integrationKey.GetBytes().HashXX64();
            var integrationKeyHash    = integrationKeyHashInt.ToString("X").Substring(0, (int)this.Characters);
            var partitionKey          = integrationId + integrationKeyHash;

            astLookup = new RefAst(integrationKey, partitionKey);
            return(true);
        }
示例#3
0
 public static IRefAst <TRef> Cast <TRef>(this IRefAst astRef)
 {
     return(new RefAst <TRef>(astRef.RowKey, astRef.PartitionKey));
 }