Esempio n. 1
0
        public void AttachFilesToRequests(List <Request> requests, NiisWebContextMigration niisWebContext,
                                          ref int migratedFilesCount)
        {
            var documentFiles =
                _oldNiisDocumentDataService.GetDdDocumentDatas(requests.Select(r => r.Barcode).ToList());

            if (documentFiles.Any() == false)
            {
                return;
            }

            foreach (var request in requests)
            {
                var documentData = documentFiles.SingleOrDefault(d => d.Id == request.Barcode);
                if (documentData == null)
                {
                    continue;
                }
                if (string.IsNullOrWhiteSpace(documentData.FileName))
                {
                    documentData.FileName = $"{request.Barcode}.{FileTypes.Pdf}";
                }
                var attachment = new Attachment
                {
                    AuthorId     = request.UserId ?? _appConfiguration.AuthorAttachmentDocumentId,
                    ContentType  = FileTypeHelper.GetContentType(documentData.FileName),
                    BucketName   = $"old-request-{request.Barcode}",
                    IsMain       = true,
                    CopyCount    = request.CopyCount,
                    PageCount    = request.PageCount,
                    DateCreate   = documentData.DateCreate,
                    DateUpdate   = documentData.DateUpdate,
                    OriginalName = documentData.FileName,
                    Length       = documentData.File.Length,
                    ValidName    = documentData.FileName.MakeValidFileName(),
                    Hash         = _generateHash.GenerateFileHash(documentData.File)
                };

                _newNiisAttachmentFileService = new NewNiisAttachmentFileService(niisWebContext);

                _newNiisAttachmentFileService.CreateAttachment(attachment);
                _fileStorage.AddAsync(attachment.BucketName, attachment.ValidName, documentData.File,
                                      attachment.ContentType).Wait();

                request.MainAttachmentId = attachment.Id;

                niisWebContext.SaveChanges();

                migratedFilesCount++;
            }
        }
Esempio n. 2
0
        private async Task <Attachment> CreateAttachment(DocumentData oldAttachment, int newDocumentId)
        {
            try
            {
                var fileName = oldAttachment.FileName;
                var file     = oldAttachment.File;

                var documentInfo = SavedDocuments.FirstOrDefault(d => d.Id == newDocumentId);
                if (documentInfo == null)
                {
                    return(null);
                }

                var extentionPath = GetDocumentTypeName((byte)documentInfo.DocumentType);
                var bucketName    = GetBucketName(null, newDocumentId, null);

                if (string.IsNullOrWhiteSpace(fileName))
                {
                    fileName = $"{Guid.NewGuid()}.{FileTypes.Pdf}";
                }

                var originalName = GetFolderWithOriginalName(null, newDocumentId, null, fileName, extentionPath);
                var validName    = fileName.MakeValidFileName();
                var contentType  = FileTypeHelper.GetContentType(fileName);

                await _fileStorage.AddAsync(bucketName, originalName, file, contentType);

                var attachment = new Attachment
                {
                    AuthorId     = DeveloperUserId,
                    ContentType  = contentType,
                    BucketName   = bucketName,
                    IsMain       = true,
                    CopyCount    = documentInfo.CopyCount,
                    PageCount    = documentInfo.PageCount,
                    DateCreate   = DateTimeOffset.Now,
                    DateUpdate   = DateTimeOffset.Now,
                    OriginalName = originalName,
                    Length       = file.Length,
                    ValidName    = validName,
                    Hash         = _generateHash.GenerateFileHash(file),
                    ExternalId   = documentInfo.ExternalId,
                    DocumentId   = newDocumentId,
                    IsDeleted    = false
                };

                return(attachment);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Esempio n. 3
0
        public void AttachFile(AttachedFileModel attachedFile, Document document)
        {
            var attachment = new Attachment
            {
                DateCreate   = DateTimeOffset.Now,
                DocumentId   = document.Id,
                IsMain       = attachedFile.IsMain,
                CopyCount    = attachedFile.CopyCount,
                Length       = attachedFile.Length,
                AuthorId     = _configuration.AuthorAttachmentDocumentId,
                PageCount    = attachedFile.PageCount,
                OriginalName = "integration/" + GetDocumentTypeName(document.DocumentType) + "/" + Guid.NewGuid(), //attachedFile.Name,
                ValidName    = attachedFile.Name.MakeValidFileName(),
                ContentType  = FileTypeHelper.GetContentType(attachedFile.Name),
                Hash         = _generateHash.GenerateFileHash(attachedFile.File),
                BucketName   = "documents"
            };
            var attachmentId = CreateAttachment(attachment);

            Task.Run(() => _fileStorage.AddAsync(attachment.BucketName, attachment.OriginalName, attachedFile.File, attachment.ContentType)).Wait();

            document.MainAttachmentId = attachmentId;
        }