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