public async Task Update(UssdSessionLog log)
 {
     var filter = Builders<MongoDbSessionLog>.Filter.Where(x => x.SessionId == log.SessionId);
     var update = Builders<MongoDbSessionLog>.Update.Set(x => x.EndTime, log.EndTime)
         .Set(x => x.DurationInMilliseconds, log.DurationInMilliseconds)
         .Set(x => x.ErrorStackTrace, log.ErrorStackTrace);
     await Collection.FindOneAndUpdateAsync(filter, update);
 }
 public async Task Create(UssdSessionLog log)
 {
     var mongoLog = new MongoDbSessionLog
     {
         StartTime = log.StartTime,
         ArbitraryData = log.ArbitraryData,
         SessionId = log.SessionId,
         Mobile = log.Mobile,
         EndTime = log.EndTime,
         Entries = log.Entries,
         DurationInMilliseconds = log.DurationInMilliseconds,
     };
     await Collection.InsertOneAsync(mongoLog);
 }
Esempio n. 3
0
 private static async Task PreLog(ILoggingStore store, UssdRequest request, DateTime startTime, 
     string arbitraryData)
 {
     if (store == null) return;
     if (request.RequestType != UssdRequestTypes.Initiation) return;
     var log = new UssdSessionLog
     {
         Mobile = request.Mobile,
         SessionId = request.SessionId,
         StartTime = startTime,
         ArbitraryData = arbitraryData,
     };
     await store.Create(log);
 }