/// <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);
 }