public void Handle(AttachmentCreatedMessageInternal message)
        {
            var attachments = new List <AttachmentDTO>(Data.ProcessedAttachments)
            {
                message.AttachmentDto
            };

            Data.ProcessedAttachments = attachments.ToArray();
            if (Data.ProcessedAttachments.Count() == Data.AttachmentsCount)
            {
                if (Data.MessageId.HasValue)
                {
                    Log().InfoFormat("Attachments {0} were added to message with id {1}",
                                     Data.ProcessedAttachments.Select(x => x.OriginalFileName).ToString(","), Data.MessageId);
                }
                else
                {
                    Log().InfoFormat("Attachments {0} were added to general with id {1}",
                                     Data.ProcessedAttachments.Select(x => x.OriginalFileName).ToString(","), Data.GeneralId);
                }

                AttachmentFolder.Delete(Data.FileIds);

                SendSuccessfullMessage();
            }
        }
 public void Handle(ExceptionThrownLocalMessage message)
 {
     message.SagaId = Data.OuterSagaId;
     AttachmentFolder.Delete(Data.FileIds);
     SendLocal(message);
     MarkAsComplete();
 }
Esempio n. 3
0
        private AddAttachmentPartToMessageCommand GetAddAttachmentPartToMessageCommand(string tpStorageFileName)
        {
            var addAttachmentPartToMessageCommand = new AddAttachmentPartToMessageCommand
            {
                FileName          = Data.LocalStoredAttachment.FileName,
                TPStorageFileName = tpStorageFileName,
                MessageId         = Data.MessageId,
                GeneralId         = Data.GeneralId,
                OwnerId           = Data.LocalStoredAttachment.OwnerId,
                Description       = Data.LocalStoredAttachment.Description,
                CreateDate        = Data.LocalStoredAttachment.CreateDate
            };

            var maxBufferSize = ObjectFactory.GetInstance <IBufferSize>().Value;

            using (var fileStream = new FileStream(AttachmentFolder.GetAttachmentFileFullPath(Data.LocalStoredAttachment.FileId),
                                                   FileMode.Open, FileAccess.Read,
                                                   FileShare.None))
            {
                var bytesCountLeftToSend = fileStream.Length - Data.CurrentPosition;

                var size  = bytesCountLeftToSend > maxBufferSize ? maxBufferSize : (int)bytesCountLeftToSend;
                var bytes = new byte[size];
                fileStream.Seek(Data.CurrentPosition, SeekOrigin.Begin);

                fileStream.Read(bytes, 0, size);

                addAttachmentPartToMessageCommand.BytesSerializedToBase64 = Convert.ToBase64String(bytes);
                addAttachmentPartToMessageCommand.IsLastPart = fileStream.Position == fileStream.Length;

                Data.CurrentPosition = fileStream.Position;
            }
            return(addAttachmentPartToMessageCommand);
        }