コード例 #1
0
        public async Task <ApiResponse> Handle(GetDocumentFilesQuery request, CancellationToken cancellationToken)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                if (request != null)
                {
                    List <FileListModel> fileList = new List <FileListModel>();

                    //switch (model.PageId)
                    //{
                    //    case (int)FileSourceEntityTypes.Voucher:

                    fileList = await _dbContext.EntitySourceDocumentDetails
                               .Include(x => x.DocumentFileDetail)
                               .Where(x => x.IsDeleted == false && x.EntityId == request.RecordId &&
                                      x.DocumentFileDetail.PageId == request.PageId)
                               .Select(x => new FileListModel
                    {
                        FileName       = x.DocumentFileDetail.Name,
                        FilePath       = x.DocumentFileDetail.StorageDirectoryPath,
                        DocumentFileId = x.DocumentFileId
                    }).ToListAsync();

                    //        break;
                    //}

                    if (fileList.Any())
                    {
                        DownloadObjectGCBucketModel bucketModel = new DownloadObjectGCBucketModel();

                        foreach (var item in fileList)
                        {
                            bucketModel.ObjectName = item.FilePath;

                            ApiResponse responses = await DownloadFileFromBucket(bucketModel);

                            if (!string.IsNullOrEmpty(responses.data.SignedUrl))
                            {
                                item.FileSignedURL = responses.data.SignedUrl;
                            }
                        }

                        response.data.DocumentFileList = fileList;
                    }
                }

                response.StatusCode = StaticResource.successStatusCode;
                response.Message    = "Success";
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = ex.Message;
            }
            return(response);
        }
コード例 #2
0
        public async Task <ApiResponse> DownloadFileFromBucket(DownloadObjectGCBucketModel model)
        {
            ApiResponse response = new ApiResponse();

            try
            {
                string bucketName = Environment.GetEnvironmentVariable("GOOGLE_BUCKET_NAME");

                response.data.SignedUrl = await GCBucket.GetSignedURL(bucketName, model.ObjectName);

                response.StatusCode = StaticResource.successStatusCode;
                response.Message    = StaticResource.SuccessText;
            }
            catch (Exception ex)
            {
                response.StatusCode = StaticResource.failStatusCode;
                response.Message    = StaticResource.SomethingWrong + ex;
            }
            return(response);
        }