public async Task ProcessMessageAsync(MeetupMessage message)
        {
            DateTime messageTime = new DateTime(message.Timestamp.Year, message.Timestamp.Month, message.Timestamp.Day, message.Timestamp.Hour, message.Timestamp.Minute, 0);
            long     basket      = messageTime.Ticks;

            string counterKey = $"counter_{message.EventId}:{message.Group.Country}:{message.Group.City}";
            string basketsKey = $"basket_{message.EventId}:{message.Group.Country}:{message.Group.City}";

            IDatabase db = _multiplexer.GetDatabase(_redisConfiguration.Database);

            ITransaction transaction = db.CreateTransaction();

            transaction.SortedSetIncrementAsync(counterKey, basket, 1);
            transaction.SortedSetAddAsync(basketsKey, basket, 0);
            await transaction.ExecuteAsync();
        }
Esempio n. 2
0
 public abstract Task OnMessageAsync(MeetupMessage meetupMessage);
 public override async Task OnMessageAsync(MeetupMessage meetupMessage)
 {
     await _streamAnalytics.ProcessMessageAsync(meetupMessage);
 }
Esempio n. 4
0
 public async Task SaveAsync(MeetupMessage message)
 {
     CloudBlockBlob blockBlob = _container.GetBlockBlobReference($"meetup_{DateTime.UtcNow.ToString("yyyyMMddHHmmss")}_{Guid.NewGuid()}");
     await blockBlob.UploadTextAsync(JsonConvert.SerializeObject(message));
 }
Esempio n. 5
0
 public override async Task OnMessageAsync(MeetupMessage meetupMessage)
 {
     await _meetupRepository.SaveAsync(meetupMessage);
 }
 public void Produce(MeetupMessage message)
 {
     _client.Send(new BrokeredMessage(message));
 }