コード例 #1
0
        public void for_determines_action_type_guid()
        {
            var events = new List<IEvent>
            {
                new Event<AEvent>(new AEvent()),
                new Event<AEvent>(new AEvent()),
                new Event<AEvent>(new AEvent()),
                new Event<AEvent>(new AEvent()),
                new Event<AEvent>(new AEvent()),
            };

            events[0].Version = 5;

            StreamAction.For(Guid.NewGuid(), events)
                .ActionType.ShouldBe(StreamActionType.Append);

            events[0].Version = 1;

            StreamAction.For(Guid.NewGuid(), events)
                .ActionType.ShouldBe(StreamActionType.Start);
        }
コード例 #2
0
        private void buildGroups()
        {
            var byTenant = Range.Events.GroupBy(x => x.TenantId);

            foreach (var group in byTenant)
            {
                var tenant = _store.Tenancy[@group.Key];

                var actions = _store.Events.StreamIdentity switch
                {
                    StreamIdentity.AsGuid => @group.GroupBy(x => x.StreamId)
                    .Select(events => StreamAction.For(events.Key, events.ToList())),

                    StreamIdentity.AsString => @group.GroupBy(x => x.StreamKey)
                    .Select(events => StreamAction.For(events.Key, events.ToList())),

                    _ => null
                };

                Groups.Add(new TenantActionGroup(tenant, actions));
            }
        }
コード例 #3
0
        public TenantedEventRange(EventGraph graph, ITenancy tenancy, EventRange range)
        {
            Range = range;

            var byTenant = range.Events.GroupBy(x => x.TenantId);

            foreach (var group in byTenant)
            {
                var tenant = tenancy[group.Key];

                var actions = graph.StreamIdentity switch
                {
                    StreamIdentity.AsGuid => group.GroupBy(x => x.StreamId)
                    .Select(events => StreamAction.For(events.Key, events.ToList())),

                    StreamIdentity.AsString => group.GroupBy(x => x.StreamKey)
                    .Select(events => StreamAction.For(events.Key, events.ToList())),

                    _ => null
                };

                Groups.Add(new TenantActionGroup(tenant, actions));
            }
        }