using MongoDB.Driver; using System; using System.Collections.Generic; using System.Collections.Specialized; namespace Bootstrap.DataAccess.MongoDB { /// /// /// public class Exceptions : DataAccess.Exceptions { private static void ClearExceptions() { System.Threading.Tasks.Task.Run(() => { MongoDbAccessManager.Exceptions.DeleteMany(ex => ex.LogTime < DateTime.Now.AddDays(-7)); }); } /// /// /// /// public override IEnumerable RetrieveExceptions() { return MongoDbAccessManager.Exceptions.Find(ex => ex.LogTime >= DateTime.Now.AddDays(-7)).ToList(); } /// /// /// /// /// /// public override bool Log(Exception ex, NameValueCollection additionalInfo) { var excep = new DataAccess.Exceptions { Id = null, AppDomainName = AppDomain.CurrentDomain.FriendlyName, ErrorPage = additionalInfo?["ErrorPage"] ?? (ex.GetType().Name.Length > 50 ? ex.GetType().Name.Substring(0, 50) : ex.GetType().Name), ExceptionType = ex.GetType().FullName, LogTime = DateTime.Now, Message = ex.Message, StackTrace = ex.StackTrace, UserId = additionalInfo?["UserId"], UserIp = additionalInfo?["UserIp"] }; MongoDbAccessManager.Exceptions.InsertOne(excep); ClearExceptions(); return true; } } }