forked from ddrilling/AsbCloudServer
CS2-106: Inserted logic from DrillingProgram controller in fileService.GetFileWebUrlAsync()
This commit is contained in:
parent
96fdd02ca7
commit
e79cf9f5d1
@ -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);
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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,
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user