コード例 #1
0
        /// <summary>
        /// Transforms the <see cref="SubscriptionOptionsDto"/> into a new <see cref="PersistentSubscriptionSettings"/>
        /// </summary>
        /// <param name="subscriptionOptions">The <see cref="SubscriptionOptionsDto"/> to transform</param>
        /// <returns>A new <see cref="PersistentSubscriptionSettings"/></returns>
        public static PersistentSubscriptionSettings ToPersistentSubscriptionSettings(this SubscriptionOptionsDto subscriptionOptions)
        {
            PersistentSubscriptionSettingsBuilder builder = PersistentSubscriptionSettings.Create();

            if (subscriptionOptions.StreamPosition.HasValue)
            {
                switch (subscriptionOptions.StreamPosition.Value)
                {
                case StreamPosition.Start:
                    builder.StartFromBeginning();
                    break;

                case StreamPosition.End:
                    builder.StartFromCurrent();
                    break;

                default:
                    builder.StartFrom(subscriptionOptions.StreamPosition.Value);
                    break;
                }
            }
            builder.ResolveLinkTos();
            builder.WithMaxSubscriberCountOf(1);
            builder.MinimumCheckPointCountOf(1);
            builder.MaximumCheckPointCountOf(1);
            return(builder.Build());
        }
コード例 #2
0
        /// <summary>
        /// Creates the persistent subscription from position.
        /// </summary>
        /// <param name="stream">The stream.</param>
        /// <param name="groupName">Name of the group.</param>
        /// <param name="position">The position.</param>
        /// <returns></returns>
        public async Task CreatePersistentSubscriptionFromPosition(String stream, String groupName, Int32 position)
        {
            PersistentSubscriptionSettingsBuilder settingsBuilder = PersistentSubscriptionSettings.Create()
                                                                    .ResolveLinkTos().WithMaxRetriesOf(10).WithMessageTimeoutOf(TimeSpan.FromSeconds(10)).StartFrom(position);

            await this.CreatePersistentSubscription(stream, groupName, settingsBuilder.Build());
        }
コード例 #3
0
 private async Task CreateSubscription(string subscription, string eventTypeStream, PersistentSubscriptionSettingsBuilder settings)
 {
     try
     {
         await _conn.CreatePersistentSubscriptionAsync(eventTypeStream, subscription, settings, _credentials);
     }
     catch
     {
         // Already exists
     }
 }