public void LogEvent(Event e)
{
try
{
// Initialize command TypeName if not already initialized
if (String.IsNullOrEmpty(e.Metadata.TypeName))
e.Metadata.TypeName = e.GetTypeName();
var eventDocument = e.ToBsonDocument();
// Removing _t element (generated by mongodb driver)
eventDocument.Remove("_t");
var eventRecord = new BsonDocument
{
{ "Event", eventDocument },
{ "Handlers", new BsonArray() },
};
var query = Query.EQ("_id", e.Metadata.CommandId);
var update = Update.Push("Events", eventRecord);
Write.Logs.Update(query, update);
}
catch (Exception)
{
// Catch all errors because logging should not throw errors if unsuccessful
}
}