ActivityStreams.Persistence.Cassandra.ActivityStore.LoadStream C# (CSharp) Method

LoadStream() public method

public LoadStream ( byte streamId, ActivityStreamOptions options ) : IEnumerable
streamId byte
options ActivityStreamOptions
return IEnumerable
        public IEnumerable<Activity> LoadStream(byte[] streamId, ActivityStreamOptions options)
        {
            options = options ?? ActivityStreamOptions.Default;

            var statement = LoadActivityStreamQueryTemplateDesc;
            SortedSet<Activity> activities = new SortedSet<Activity>(Activity.ComparerDesc);

            var sortOrder = options.SortOrder;
            var paging = options.Paging;

            if (sortOrder == SortOrder.Ascending)
            {
                statement = LoadActivityStreamQueryTemplateAsc;
                activities = new SortedSet<Activity>(Activity.ComparerAsc);
            }

            var streamIdQuery = Convert.ToBase64String(streamId);

            var prepared = session
                    .Prepare(statement)
                    .Bind(streamIdQuery, paging.Timestamp)
                    .SetAutoPage(false)
                    .SetPageSize(paging.Take);

            var rowSet = session.Execute(prepared);
            foreach (var row in rowSet.GetRows())
            {
                using (var stream = new MemoryStream(row.GetValue<byte[]>("data")))
                {
                    var storedActivity = (Activity)serializer.Deserialize(stream);
                    activities.Add(storedActivity);
                }
            }

            return activities;
        }