private Task HandleDatabaseUpdated(DatabaseActionEventArgs arg) { if (arg.IsErrored) { _dbLogger.Error(arg.Path, arg.Exception); } else { _dbLogger.Info(arg.Path); } return(Task.CompletedTask); }
private void DatabaseAccessFacade_DatabaseActionOcurred(object sender, DatabaseActionEventArgs e) { Console.WriteLine($"database action occurred. Sending {e.Values.Count} to eventHub"); Stopwatch s = new Stopwatch(); s.Start(); var values = e.Values.Select(v => new SignalValue { Vin = v.Vin, Location = v.Location, SignalId = v.SignalId, Time = v.Time, Value = v.Value }).ToList(); var eventHubClient = EventHubClient.CreateFromConnectionString(mConnectionString, mEventhubName); var batch = new List <EventData>(); var maxBatchSize = 200000; long totalCurrentSize = 0; int i = 0; foreach (var value in values) { i++; var serializedSignalValue = JsonConvert.SerializeObject(value); var x = new EventData(Encoding.UTF8.GetBytes(serializedSignalValue)); totalCurrentSize += x.SerializedSizeInBytes; if (totalCurrentSize > maxBatchSize) { Console.WriteLine($"Sending batch to eventHub. batch size: {i}"); SendBatchToEventHub(batch, eventHubClient); totalCurrentSize = 0; batch.Clear(); i = 0; } batch.Add(x); } Console.WriteLine($"Sending batch to eventHub. batch size: {i}"); SendBatchToEventHub(batch, eventHubClient); Console.WriteLine($"done sending batches, time spent sending: {s.ElapsedMilliseconds} milliseconds"); }
internal void InvokeEvent(DatabaseActionEventArgs e) { DatabaseUpdated?.Invoke(e); }