public static EventHeader Insert(this IDbConnection conn, EventHeader input)
 {
     return conn.GetReader("insert into [EventHeaders] " +
         "([EventId],[Name],[Value]) values (@p0,@p1,@p2);" +
         " select [EventId],[Name],[Value] from [EventHeaders] where [EventId]=@p0 and [Name]=@p1;",
         input.EventId, input.Name, input.Value).Select(x=>x.ToEventHeader()).First();
 }
Beispiel #2
0
 public bool SaveEvents(IEnumerable<object> events)
 {
     foreach (var evt in events)
     {
         var evtblob = new EventBlob {
             TypeFullName = evt.GetType().FullName,
             TypeName = evt.GetType().Name,
         };
         serializer.Serialize(evt, ref evtblob);
         var headers = new List<EventHeader>();
         foreach(var p in evt.GetType().GetProperties().Where(x=>x.Name.EndsWith("Id")))
         {
             var val = p.GetValue(evt,null);
             if (val==null)
                 continue;
             var hdr = new EventHeader{
                 Name = p.Name,
                 Value = val.ToString()
             };
             headers.Add(hdr);
         }
         adapter.SaveEvent(evtblob,headers);
     }
     return true;
 }
 static EventHeader ToEventHeader(this IDataReader dr)
 {
     var bl = new EventHeader();
     bl.EventId = dr.GetInt32(0);
     bl.Name = dr.GetString(1);
     bl.Value = dr.GetString(2);
     return bl;
 }