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(); }
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; }
public void DetachStream(FeedStream feedStream) { if (feedStreams.Remove(feedStream)) repository.DetachStream(feedStream); }
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); }