Exemplo 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++;
            }
        }
Exemplo n.º 2
0
        public int?GetMainAttachmentId(int oldDocumentId, NiisWebContextMigration niisWebContext)
        {
            var documentData = _oldNiisDocumentDataService.GetDocumentData(oldDocumentId);

            if (documentData == null)
            {
                return(null);
            }

            if (string.IsNullOrWhiteSpace(documentData.FileName))
            {
                documentData.FileName = $"{oldDocumentId}.{FileTypes.Pdf}";
            }

            var attachment = new Attachment
            {
                AuthorId     = _appConfiguration.AuthorAttachmentDocumentId,
                ContentType  = FileTypeHelper.GetContentType(documentData.FileName),
                BucketName   = $"old-document-{oldDocumentId}",
                IsMain       = true,
                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();

            return(attachment.Id);
        }