Ejemplo n.º 1
0
        public IdSpan GetGrainKeyId(GrainBindings grainBindings, StreamId streamId)
        {
            string keyType = null;
            bool   includeNamespaceInGrainId = false;

            foreach (var grainBinding in grainBindings.Bindings)
            {
                if (!grainBinding.TryGetValue(WellKnownGrainTypeProperties.BindingTypeKey, out var type) ||
                    !string.Equals(type, WellKnownGrainTypeProperties.StreamBindingTypeValue, StringComparison.Ordinal))
                {
                    continue;
                }

                if (grainBinding.TryGetValue(WellKnownGrainTypeProperties.LegacyGrainKeyType, out keyType))
                {
                    if (grainBinding.TryGetValue(WellKnownGrainTypeProperties.StreamBindingIncludeNamespaceKey, out var value) &&
                        string.Equals(value, "true", StringComparison.OrdinalIgnoreCase))
                    {
                        includeNamespaceInGrainId = true;
                    }
                }
            }

            return(keyType switch
            {
                nameof(Guid) => GetGuidKey(streamId, includeNamespaceInGrainId),
                nameof(Int64) => GetIntegerKey(streamId, includeNamespaceInGrainId),
                _ => GetKey(streamId), // null or string
            });
Ejemplo n.º 2
0
 public BroadcastChannelSubscriber(GrainBindings grainBindings, IChannelIdMapper channelIdMapper)
 {
     GrainBindings        = grainBindings;
     this.channelIdMapper = channelIdMapper;
 }
Ejemplo n.º 3
0
 public StreamSubscriber(GrainBindings grainBindings, IStreamIdMapper streamIdMapper)
 {
     this.GrainBindings  = grainBindings;
     this.streamIdMapper = streamIdMapper;
 }