/// <summary> /// Copy files from one entity to another. /// </summary> /// <param name="sourceFileSchemaUId">Schema uniqueidentifier of source file entity.</param> /// <param name="targetMasterRecordId">Target master record uniqueidentifier.</param> /// <param name="sourceFileRecods">List of files record uniqueidentifier of source master entity.</param> public void Copy(Guid sourceFileSchemaUId, Guid targetMasterRecordId, IList <Guid> sourceFileRecods) { foreach (var fileId in sourceFileRecods) { using (var memoryStream = new MemoryStream()) { var bwriter = new BinaryWriter(memoryStream); var fileInfo = FileRepository.LoadFile(sourceFileSchemaUId, fileId, bwriter); FileRepository.UploadFile(CaseFileEntityUploadInfo .CopyFromFileUploadInfo(fileInfo, targetMasterRecordId, memoryStream)); } } }
/// <summary> /// Make copy from source <see cref="IFileUploadInfo"/>. /// </summary> /// <param name="source">Source file upload information.</param> /// <param name="parentColumnValue">Parent column value uniqueidentifier.</param> /// <param name="content">File content <see cref="FileUploadInfo.Content"/>.</param> /// <returns>File info for CaseFile <see cref="CaseFileEntityUploadInfo"/>.</returns> public static CaseFileEntityUploadInfo CopyFromFileUploadInfo(IFileUploadInfo source, Guid parentColumnValue, Stream content) { var fileEntityInfo = new CaseFileEntityUploadInfo(TargetFileSchemaName, Guid.NewGuid(), source.FileName) { ParentColumnName = TargetSchema, ParentColumnValue = parentColumnValue, TotalFileLength = source.TotalFileLength, Content = content }; return(fileEntityInfo); }