예제 #1
0
        public async new Task <IList <IEvent <TStateKey> > > GetListAsync(EventQueryModel queryModel)
        {
            queryModel.StateId = this.StateId.ToString();
            List <string> tables = await this._storageFactory.GetTableList(this.Options.EventSourceName, StorageType.EventSource, this.StateId.ToString(), queryModel.StartTime);

            List <IEvent <TStateKey> > events = new List <IEvent <TStateKey> >();

            foreach (var t in tables)
            {
                var eventModels = await _eventStorage.GetListAsync(t, queryModel);

                var _events = this.ConvertEvent <TStateKey>(eventModels);
                events.AddRange(_events);
                if (queryModel.Limit > 0)
                {
                    if (events.Count >= queryModel.Limit)
                    {
                        break;
                    }
                }
            }
            return(events);
        }