public virtual CaptureResponse Capture(XDocument xmlDocument) { var startDate = SystemContext.Clock.Now; _documentValidator.Validate(xmlDocument); var events = _documentParser.Parse(xmlDocument.Root); var currentUser = _userProvider.GetCurrentUser(); var request = new EpcisRequest { RecordTime = SystemContext.Clock.Now, DocumentTime = DateTime.Parse(xmlDocument.Root.Attribute("creationDate").Value), User = currentUser }; foreach (var @event in events) { request.AddEvent(@event); } _requestPersister.Persist(request); return(new CaptureResponse { EventCount = request.Events.Count, CaptureStartDateUtc = startDate, CaptureEndDateUtc = SystemContext.Clock.Now, EventIds = request.Events.Select(e => e.Id.ToString()).ToArray() }); }
public void CanSaveAndLoadEpcisRequest() { Guid id; using (var tx = session.BeginTransaction()) { var request = new EpcisRequest { DocumentTime = new DateTime(2017, 11, 11, 12, 38, 00), RecordTime = new DateTime(2017, 11, 11, 12, 42, 00) }; request.AddEvent(new EpcisEvent { EventType = EventType.ObjectEvent, Action = EventAction.Add, EventTime = new DateTime(2017, 10, 10, 10, 10, 00), EventTimezoneOffset = new TimeZoneOffset { Representation = "+01:00" } }); id = (Guid)session.Save(request); tx.Commit(); } session.Clear(); using (var tx = session.BeginTransaction()) { var request = session.Get <EpcisRequest>(id); Assert.AreEqual(request.DocumentTime, new DateTime(2017, 11, 11, 12, 38, 00)); Assert.AreEqual(request.RecordTime, new DateTime(2017, 11, 11, 12, 42, 00)); Assert.AreEqual(request.Events.Count, 1); tx.Commit(); } }
public virtual IEnumerable <string> Capture(XDocument xmlDocument) { _documentValidator.Validate(xmlDocument); var events = _documentParser.Parse(xmlDocument.Root); var currentUser = _userProvider.GetCurrentUser(); var request = new EpcisRequest { RecordTime = SystemContext.Clock.Now, DocumentTime = DateTime.Parse(xmlDocument.Root.Attribute("creationDate").Value), SubscriptionId = TryExtractSubscriptionId(xmlDocument), User = currentUser }; foreach (var @event in events) { request.AddEvent(@event); } _requestPersister.Persist(request); return(request.Events.Select(e => e.Id.ToString())); }