CS2-106: Inserted logic from DrillingProgram controller in fileService.GetFileWebUrlAsync()

This commit is contained in:
cult 2021-10-29 16:03:24 +05:00
parent 96fdd02ca7
commit e79cf9f5d1
4 changed files with 17 additions and 16 deletions

View File

@ -12,7 +12,7 @@ namespace AsbCloudApp.Services
string RootPath { get; } string RootPath { get; }
Task<string> GetFileWebUrlAsync(FileInfoDto dto, string userLogin, Task<string> GetFileWebUrlAsync(FileInfoDto dto, string userLogin,
string relativePath, CancellationToken token = default); CancellationToken token = default);
Task<FileInfoDto> SaveAsync(int idWell, int? idUser, int idCategory, string fileFullName, Stream fileStream, CancellationToken token = default); Task<FileInfoDto> SaveAsync(int idWell, int? idUser, int idCategory, string fileFullName, Stream fileStream, CancellationToken token = default);

View File

@ -32,12 +32,18 @@ namespace AsbCloudInfrastructure.Services
this.googleDriveService = googleDriveService; this.googleDriveService = googleDriveService;
} }
public async Task<string> GetFileWebUrlAsync(FileInfoDto dto, string userLogin, public async Task<string> GetFileWebUrlAsync(FileInfoDto fileInfo, string userLogin,
string relativePath, CancellationToken token = default) CancellationToken token = default)
{ {
var fileWebUrl = fileInfo.PublishInfo?.WebStorageFileUrl;
if (!string.IsNullOrEmpty(fileWebUrl))
return fileWebUrl;
var relativePath = GetUrl(fileInfo);
var fileWebLink = await PublishFileToCloudAsync(relativePath, var fileWebLink = await PublishFileToCloudAsync(relativePath,
dto.Name, token); fileInfo.Name, token);
await SaveWeblinkToFileInfo(dto.Id, userLogin, fileWebLink, token); await SaveWeblinkToFileInfo(fileInfo.Id, userLogin, fileWebLink, token);
return fileWebLink; return fileWebLink;
} }

View File

@ -51,7 +51,7 @@ namespace AsbCloudInfrastructure.Services
service = newService; service = newService;
} }
public IEnumerable<Google.Apis.Drive.v3.Data.File> GetAllFiles() public async Task<IEnumerable<string>> GetAllFileNames()
{ {
var fileList = service.Files.List(); var fileList = service.Files.List();
fileList.Fields = "files(id, webViewLink, size)"; fileList.Fields = "files(id, webViewLink, size)";
@ -63,13 +63,13 @@ namespace AsbCloudInfrastructure.Services
do do
{ {
fileList.PageToken = pageToken; fileList.PageToken = pageToken;
var filesResult = fileList.Execute(); var filesResult = await fileList.ExecuteAsync();
var files = filesResult.Files; var files = filesResult.Files;
pageToken = filesResult.NextPageToken; pageToken = filesResult.NextPageToken;
result.AddRange(files); result.AddRange(files);
} while (pageToken != null); } while (pageToken != null);
return result; return result.Select(r => r.Name);
} }
public async Task<string> GetFileWebLinkAsync(string idFile, public async Task<string> GetFileWebLinkAsync(string idFile,

View File

@ -53,19 +53,14 @@ namespace AsbCloudWebApi.Controllers
{ {
var fileInfo = await drillingProgramService.GetAsync(idWell, token) var fileInfo = await drillingProgramService.GetAsync(idWell, token)
.ConfigureAwait(false); .ConfigureAwait(false);
if (fileInfo is null) if (fileInfo is null)
return NoContent(); return NoContent();
var fileWebUrl = fileInfo.PublishInfo?.WebStorageFileUrl;
if (!string.IsNullOrEmpty(fileWebUrl))
return Ok(fileWebUrl);
var relativePath = fileService.GetUrl(fileInfo);
var userLogin = User.Identity?.Name ?? ""; var userLogin = User.Identity?.Name ?? "";
fileWebUrl = await fileService.GetFileWebUrlAsync(fileInfo, var fileWebUrl = await fileService.GetFileWebUrlAsync(fileInfo,
userLogin, relativePath, token); userLogin, token);
return Ok(fileWebUrl); return Ok(fileWebUrl);
} }