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