当前位置: 首页>>代码示例>>C#>>正文


C# IEventStoreConnection.ReadStreamEventsForward方法代码示例

本文整理汇总了C#中IEventStoreConnection.ReadStreamEventsForward方法的典型用法代码示例。如果您正苦于以下问题:C# IEventStoreConnection.ReadStreamEventsForward方法的具体用法?C# IEventStoreConnection.ReadStreamEventsForward怎么用?C# IEventStoreConnection.ReadStreamEventsForward使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IEventStoreConnection的用法示例。


在下文中一共展示了IEventStoreConnection.ReadStreamEventsForward方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Count

 public static int Count(IEventStoreConnection store, string stream)
 {
     var result = 0;
     while (true)
     {
         var slice = store.ReadStreamEventsForward(stream, result, SliceSize, false);
         result += slice.Events.Length;
         if (slice.IsEndOfStream)
             break;
     }
     return result;
 }
开发者ID:thinkbeforecoding,项目名称:EventStore,代码行数:12,代码来源:EventsStream.cs

示例2: ReadEventsTill

        protected override void ReadEventsTill(IEventStoreConnection connection, bool resolveLinkTos, 
                                               UserCredentials userCredentials, long? lastCommitPosition, int? lastEventNumber)
        {
            bool done;
            do
            {
                var slice = connection.ReadStreamEventsForward(StreamId, _nextReadEventNumber, ReadBatchSize, resolveLinkTos, userCredentials);
                switch (slice.Status)
                {
                    case SliceReadStatus.Success:
                    {
                        foreach (var e in slice.Events)
                        {
                            TryProcess(e);
                        }
                        _nextReadEventNumber = slice.NextEventNumber;
                        done = lastEventNumber == null ? slice.IsEndOfStream : slice.NextEventNumber > lastEventNumber;
                        break;
                    }
                    case SliceReadStatus.StreamNotFound:
                    {
                        if (lastEventNumber.HasValue && lastEventNumber != -1)
                            throw new Exception(string.Format("Impossible: stream {0} disappeared in the middle of catching up subscription.", StreamId));
                        done = true;
                        break;
                    }
                    case SliceReadStatus.StreamDeleted:
                        throw new StreamDeletedException(StreamId);
                    default:
                        throw new ArgumentOutOfRangeException(string.Format("Unexpected StreamEventsSlice.Status: {0}.", slice.Status));
                }

                if (!done && slice.IsEndOfStream)
                    Thread.Sleep(1); // we are waiting for server to flush its data
            } while (!done);

            if (Verbose)
                Log.Debug("Catch-up Subscription to {0}: finished reading events, nextReadEventNumber = {1}.",
                          IsSubscribedToAll ? "<all>" : StreamId, _nextReadEventNumber);
        }
开发者ID:jjvdangelo,项目名称:EventStore,代码行数:40,代码来源:EventStoreCatchUpSubscription.cs

示例3: FromStream

        static void FromStream(IEventStoreConnection con, UserCredentials userCredentials)
        {
            var ad = new MyBudget.Infrastructure.EventStoreAdapter(address, userCredentials);

            // var sub = con.SubscribeToStreamFrom("$category-Users", null, true, Appeared, Live, Dropped, userCredentials);
            //   sub.Start();

            var read = con.ReadStreamEventsForward("lines_of_", 0, 1000, true, userCredentials);

            foreach (var e in read.Events)
            {
                var t = ad.TryGetDomainEvent(e);

            }
            var mre = new ManualResetEvent(false);
            mre.WaitOne(3000);

            var rgpsa = events.GroupBy(g => g.Event.EventId).ToList();
            int i = 0;
            var rgps = events.Select(s => new { s, position = i++ }).GroupBy(g => g.s.Event.EventId).ToList();
            //var rgps2 = read.Events.Select(s => new { s, position = i++ }).GroupBy(g => g.s.Event.EventId).ToList();

            foreach (var r in rgps)
            {
                var values = r.ToArray();

                foreach (var v in values)
                {

                    var t = ad.TryGetDomainEvent(v.s);
                }
            }


            Console.ReadLine();
        }
开发者ID:valeriob,项目名称:MyBudget,代码行数:36,代码来源:Program.cs


注:本文中的IEventStoreConnection.ReadStreamEventsForward方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。