public void Save_Persists()
        {
            var sourceRepo = new SqlSourceRepository();
            var batchRepository = new SqlBatchRepository();
            var logEventRepo = new SqlLogEventRepository();

            var source = sourceRepo.GetOrCreate("BatchTest", null);
            var batch = batchRepository.Create(source);
            var logEvent = new LogEvent();

            logEvent.Batch = batch;
            logEvent.Exception = "woooah";
            logEvent.Message = "unit test";
            logEvent.TimeStamp = DateTime.Parse("2012-05-06 13:40");

            logEventRepo.Save(logEvent);

            var events = logEventRepo.GetAll(source);

            // AssertBuilder.Generate(events, "events"); // The following assertions were generated on 06-May-2012
            #region CodeGen Assertions
            Assert.AreEqual(1, events.Count);
            Assert.That(events[0].Id > 0);
            Assert.IsNotNull(events[0].Batch);
            Assert.AreEqual(Convert.ToDateTime("06-May-2012 13:40:00.000"), events[0].TimeStamp);
            Assert.AreEqual(null, events[0].Level);
            Assert.AreEqual("unit test", events[0].Message);
            Assert.AreEqual("woooah", events[0].Exception);
            #endregion
        }
        public void Save(LogEvent logEvent)
        {
            using (var dbContext = new TimberMillDbContext())
            {
                dbContext.Batchs.Attach(logEvent.Batch);
                dbContext.Sources.Attach(logEvent.Batch.Source);

                dbContext.LogEvents.Add(logEvent);
                //dbContext.Entry(logEvent.Batch).State = EntityState.Unchanged;
                //dbContext.Entry(logEvent.Batch.Source).State = EntityState.Unchanged;
                dbContext.SaveChanges();
            }
        }
Example #3
0
        private static LogEvent TimberMillEventFactory(Batch batch, LogEventInfo eventInfo)
        {
            LogEvent timberMillEvent = new LogEvent();

            timberMillEvent.Batch = batch;
            timberMillEvent.TimeStamp = eventInfo.TimeStamp;
            timberMillEvent.Level = eventInfo.Level.Name;
            timberMillEvent.Message = eventInfo.Message;
            timberMillEvent.Sequence = eventInfo.SequenceID;

            foreach(KeyValuePair<object, object> property in eventInfo.Properties)
            {
                switch(property.Key.ToString())
                {
                    case "exception":
                        timberMillEvent.Exception = property.Value.ToString();
                        break;
                }
            }
            return timberMillEvent;
        }