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);
 }