public async Task On(BookingsEnabled e) { _all.Add(e.Id, new RoomsOnSale { Id = e.Id }); var elapsed = await _networkSimulator.WaitFast().ConfigureAwait(false); this._reporter.Report($"Room {e.Id} available, took {elapsed}ms"); }
private async Task StartProducer( ISubscription subscription, IEnumerable <Chunk> chunks, CancellationToken cancellationToken) { long position = 0; try { foreach (var chunk in chunks) { position = chunk.Position; await _networkSimulator.WaitFast().ConfigureAwait(false); cancellationToken.ThrowIfCancellationRequested(); if (!await subscription.OnNext(Clone(chunk)).ConfigureAwait(false)) { await subscription.Completed(position).ConfigureAwait(false); return; } } } catch (Exception e) { await subscription.OnError(position, e).ConfigureAwait(false); return; } await subscription.Completed(position).ConfigureAwait(false); }
private async Task PushToSubscriber( long start, ISubscription subscription, IEnumerable <Chunk> chunks, CancellationToken cancellationToken) { long index = 0; await subscription.OnStartAsync(start).ConfigureAwait(false); try { foreach (var chunk in chunks) { index = chunk.Index; await _networkSimulator.WaitFast().ConfigureAwait(false); cancellationToken.ThrowIfCancellationRequested(); if (!await subscription.OnNextAsync(Clone(chunk)).ConfigureAwait(false)) { await subscription.CompletedAsync(index).ConfigureAwait(false); return; } } } catch (Exception e) { await subscription.OnErrorAsync(index, e).ConfigureAwait(false); return; } await subscription.CompletedAsync(index).ConfigureAwait(false); }
//public async Task On(BookingsEnabled e) //{ // var elapsed = await _networkSimulator.WaitFast().ConfigureAwait(false); // this._reporter.Report($"Room available {e.Id} took {elapsed}ms"); //} public async Task On(RoomBooked e) { var elapsed = await _networkSimulator.WaitFast().ConfigureAwait(false); this._reporter.Report($"Confirmed booking on {e.Id} took {elapsed}ms"); }
public async Task On(BookingsEnabled e) { var elapsed = await _networkSimulator.WaitFast().ConfigureAwait(false); this._reporter.Report($"Room available {e.Id} took {elapsed}ms"); }