/// <summary> /// Need to maintain the chain of the attachment. /// </summary> /// <param name="e"></param> public void On(DocumentDescriptorHasNewAttachment e) { _documents.FindAndModify(e, (DocumentDescriptorId)e.AggregateId, d => { d.AddAttachments(e.Attachment, e.AttachmentPath); }); }
public void On(DocumentDescriptorHasNewAttachment e) { var attachmentDescriptor = _documentDescriptorReadModel.AllUnsorted.SingleOrDefault(d => d.Documents.Contains(e.Attachment)); if (attachmentDescriptor == null) { return; } var streamReadModel = new StreamReadModel() { Id = GetNewId(), Handle = e.Attachment, DocumentDescriptorId = attachmentDescriptor.Id, EventType = HandleStreamEventTypes.DocumentHasNewAttachment, }; streamReadModel.AddEventData(StreamReadModelEventDataKeys.ChildHandle, e.Attachment); _streamReadModelCollection.Insert(e, streamReadModel); }
public void verify_stream_events_on_attachment() { SetHandleToReturn(); var docRm = new DocumentDescriptorReadModel(1L, new DocumentDescriptorId(1), new BlobId("file_1")); var rev1 = new DocumentHandle("rev_1"); docRm.AddHandle(rev1); rmDocuments.Add(docRm); var attachHandle = new DocumentHandle("rev_2"); var docRmAttach = new DocumentDescriptorReadModel(1L, new DocumentDescriptorId(1), new BlobId("file_2")); docRmAttach.AddHandle(attachHandle); rmDocuments.Add(docRmAttach); CreateSut(); var evt = new DocumentDescriptorHasNewAttachment(attachHandle, "path.txt").AssignIdForTest(new DocumentId(1)); _sut.Handle(evt, false); //Handle is linked to document. Assert.That(rmStream, Has.Count.EqualTo(1)); Assert.That(rmStream[0].EventType, Is.EqualTo(HandleStreamEventTypes.DocumentHasNewAttachment)); Assert.That(rmStream[0].EventData[StreamReadModelEventDataKeys.ChildHandle], Is.EqualTo(attachHandle)); }
private void When(DocumentDescriptorHasNewAttachment e) { AddAttachment(e.Attachment); }