public void Delete(FeedStream feedStream)
        {
            List<FeedStream> feedStreams = new List<FeedStream>();
            if (activityFeedStore.TryGetValue(feedStream.FeedId, out feedStreams) == false)
                activityFeedStore.TryAdd(feedStream.FeedId, feedStreams);

            feedStreams.Remove(feedStream);
        }
 public void Save(FeedStream feedStream)
 {
     var prepared = session.Prepare(StoreFeedStreamQueryTemplate);
     var fid = Convert.ToBase64String(feedStream.FeedId);
     var sid = Convert.ToBase64String(feedStream.StreamId);
     session
         .Execute(prepared
         .Bind(fid, sid));
 }
        public void Save(FeedStream feedStream)
        {
            List<FeedStream> feedStreams;
            if (activityFeedStore.TryGetValue(feedStream.FeedId, out feedStreams) == false)
            {
                feedStreams = new List<FeedStream>();
                activityFeedStore.TryAdd(feedStream.FeedId, feedStreams);
            }

            feedStreams.Add(feedStream);
        }
        public IHttpActionResult DetachStream(string feedId, string streamId)
        {
            var feedIdBytes = Encoding.UTF8.GetBytes(feedId);
            var streamIdBytes = Encoding.UTF8.GetBytes(streamId);

            var feed = WebApiApplication.FeedFactory.GG(feedIdBytes);
            var feedStream = new FeedStream(feedIdBytes, streamIdBytes);
            feed.DetachStream(feedStream);

            return this.Ok();
        }
Exemple #5
0
        static void Main(string[] args)
        {
            var uriDatabase = new UriDatabase();
            var errorDatabase = new MemoryDatabase<string, long>();

            GenerateReport(uriDatabase.SoftDump(), errorDatabase.ToDictionary());

            var feeder = new FeedStream<ThreadedWorker>();

            feeder.Feed(args.Skip(1).Select(s => new Uri(s)));

            var requesters = new List<HttpRequestStream<ThreadedWorker>>();

            for (int i = 0; i < int.Parse(args.ElementAt(0)); i++)
            {
                requesters.Add(new HttpRequestStream<ThreadedWorker>(uriDatabase));
            }

            var funnel = new FunnelStream<ContentLoad, Uri, ThreadedWorker>();
            var parser = new ParserStream<ThreadedWorker>();

            feeder.ReturnFeed = parser;
            parser.ReturnFeed = funnel;

            requesters.ForEach(stream => stream.ReturnFeed = feeder);
            funnel.ReturnFeeds = requesters;

            feeder.OnError += (sender, eventArgs) => CollectError(errorDatabase, eventArgs.GetException());
            parser.OnError += (sender, eventArgs) => CollectError(errorDatabase, eventArgs.GetException());
            funnel.OnError += (sender, eventArgs) => CollectError(errorDatabase, eventArgs.GetException());
            requesters.ForEach(stream => stream.OnError += (sender, eventArgs) => CollectError(errorDatabase, eventArgs.GetException()));

            parser.Start();
            funnel.Start();
            requesters.ForEach(stream => stream.Start());
            feeder.Start();

            var timer = new Timer(2000);

            timer.Elapsed += (sender, eventArgs) =>
            {
                var dump = uriDatabase.SoftDump();
                var errors = errorDatabase.ToDictionary();

                GenerateReport(dump, errors);
            };

            timer.Start();

            Console.ReadLine();
        }
        public IHttpActionResult AttachStream(string feedId, string streamId)
        {
            var feedIdBytes = Encoding.UTF8.GetBytes(feedId);
            var streamIdBytes = Encoding.UTF8.GetBytes(streamId);

            var feed = WebApiApplication.FeedRepository.Get(feedIdBytes);
            if (feed == null) return base.NotFound();

            var feedStream = new FeedStream(feedIdBytes, streamIdBytes);
            feed.AttachStream(feedStream);
            WebApiApplication.FeedRepository.Save(feed);

            return this.Ok();
        }
        public IEnumerable<FeedStream> Load(byte[] feedId)
        {
            var fid = Convert.ToBase64String(feedId);
            var prepared = session
                    .Prepare(LoadFeedStreamQueryTemplate)
                    .Bind(fid);

            var rowSet = session.Execute(prepared);
            IList<FeedStream> feedStreams = new List<FeedStream>();
            foreach (var row in rowSet.GetRows())
            {
                var stream = row.GetValue<byte[]>("sid");
                var feedStream = new FeedStream(feedId, stream);
                feedStreams.Add(feedStream);
            }

            return feedStreams;
        }
        public Feed GetFeed(int numberOfStreams, int activitiesPerStream)
        {
            var feedId = Encoding.UTF8.GetBytes("feedid");
            var feed = feedFactory.GG(feedId);
            for (int i = 0; i < numberOfStreams; i++)
            {
                for (int j = 0; j < activitiesPerStream; j++)
                {
                    var streamId = Guid.NewGuid();
                    var feedStream = new FeedStream(feedId, streamId.ToByteArray());
                    feed.AttachStream(feedStream);
                    var externalId = $"extid-{i}-{j}";
                    var body = new ActivityBody() { Content = externalId };

                    var activity = Activity.UnitTestFactory(streamId.ToByteArray(), Encoding.UTF8.GetBytes(externalId), body, "author", DateTime.UtcNow.AddYears(i));
                    activityRepository.Append(activity);
                }
            }

            return feed;
        }
Exemple #9
0
 public void DetachStream(FeedStream feedStream)
 {
     if (feedStreams.Remove(feedStream))
         repository.DetachStream(feedStream);
 }
Exemple #10
0
 public void AttachStream(FeedStream feedStream)
 {
     if (feedStreams.Add(feedStream))
         repository.AttachStream(feedStream);
 }
 public void DetachStream(FeedStream feedStream)
 {
     feedStreams.Remove(feedStream);
 }
 public void AttachStream(FeedStream feedStream)
 {
     feedStreams.Add(feedStream);
 }
 public void DetachStream(FeedStream feedStream)
 {
     store.Delete(feedStream);
 }
 public void AttachStream(FeedStream feedStream)
 {
     store.Save(feedStream);
 }