forked from ddrilling/AsbCloudServer
переименовал ряд методов для лучшего понимания
This commit is contained in:
parent
a2345cc8f2
commit
956e564f56
@ -55,7 +55,7 @@ namespace AsbCloudInfrastructure.Services
|
||||
|
||||
var fileNames = filesInfos
|
||||
.Where(f => f.Name != resultFileName)
|
||||
.Select(f => fileService.GetFileName(f));
|
||||
.Select(f => fileService.GetUrl(f));
|
||||
|
||||
var stream = new MemoryStream(1024 * 1024);
|
||||
UniteExcelFiles(fileNames, stream);
|
||||
|
@ -52,10 +52,8 @@ namespace AsbCloudInfrastructure.Services
|
||||
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(relativePath));
|
||||
|
||||
using (var newfileStream = new FileStream(relativePath, FileMode.Create))
|
||||
{
|
||||
await fileStream.CopyToAsync(newfileStream);
|
||||
}
|
||||
using var newfileStream = new FileStream(relativePath, FileMode.Create);
|
||||
await fileStream.CopyToAsync(newfileStream, token).ConfigureAwait(false);
|
||||
|
||||
var dto = entry.Entity.Adapt<FileInfoDto>();
|
||||
return dto;
|
||||
@ -164,7 +162,7 @@ namespace AsbCloudInfrastructure.Services
|
||||
if (fileInfo is null)
|
||||
return 0;
|
||||
|
||||
var fileName = GetFileName(fileInfo.Adapt<FileInfoDto>());
|
||||
var fileName = GetUrl(fileInfo.Adapt<FileInfoDto>());
|
||||
if (File.Exists(fileName))
|
||||
File.Delete(fileName);
|
||||
|
||||
@ -172,12 +170,22 @@ namespace AsbCloudInfrastructure.Services
|
||||
return await db.SaveChangesAsync(token).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public string GetFileName(FileInfoDto fileInfo)
|
||||
public string GetUrl(FileInfoDto fileInfo) =>
|
||||
GetUrl(fileInfo.IdWell, fileInfo.IdCategory, fileInfo.Id, Path.GetExtension(fileInfo.Name));
|
||||
|
||||
public string GetUrl(int idFile)
|
||||
{
|
||||
var fileName = $"{fileInfo.Id}{Path.GetExtension(fileInfo.Name)}";
|
||||
fileName = Path.Combine(RootPath, fileInfo.IdWell.ToString(), fileInfo.IdCategory.ToString(), fileName);
|
||||
fileName = Path.GetFullPath(fileName);
|
||||
return fileName;
|
||||
}
|
||||
var fileInfo = db.Files
|
||||
.FirstOrDefault(f => f.Id == idFile);
|
||||
|
||||
if (fileInfo is null)
|
||||
return null;
|
||||
|
||||
return GetUrl(fileInfo.IdWell, fileInfo.IdCategory, fileInfo.Id, Path.GetExtension(fileInfo.Name));
|
||||
}
|
||||
|
||||
public string GetUrl(int idWell, int idCategory, int idFile, string dotExtention) =>
|
||||
Path.Combine(RootPath, idWell.ToString(), idCategory.ToString(), $"{idFile}{dotExtention}");
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace AsbCloudInfrastructure.Services
|
||||
{
|
||||
public abstract class TelemetryDataService<TDto, TModel> : ITelemetryDataService<TDto>, IConverter<TDto, TModel>
|
||||
public abstract class TelemetryDataBaseService<TDto, TModel> : ITelemetryDataService<TDto>, IConverter<TDto, TModel>
|
||||
where TDto : AsbCloudApp.Data.ITelemetryData
|
||||
where TModel : class, AsbCloudDb.Model.ITelemetryData
|
||||
{
|
||||
@ -23,7 +23,7 @@ namespace AsbCloudInfrastructure.Services
|
||||
protected readonly CacheTable<TelemetryUser> cacheTelemetryUsers;
|
||||
protected readonly CacheTable<Well> cacheWells;
|
||||
|
||||
public TelemetryDataService(
|
||||
public TelemetryDataBaseService(
|
||||
IAsbCloudDbContext db,
|
||||
ITelemetryService telemetryService,
|
||||
CacheDb cacheDb)
|
@ -6,7 +6,7 @@ using Mapster;
|
||||
|
||||
namespace AsbCloudInfrastructure.Services
|
||||
{
|
||||
public class TelemetryDataSaubService: TelemetryDataService<AsbCloudApp.Data.TelemetryDataSaubDto, AsbCloudDb.Model.TelemetryDataSaub>
|
||||
public class TelemetryDataSaubService: TelemetryDataBaseService<AsbCloudApp.Data.TelemetryDataSaubDto, AsbCloudDb.Model.TelemetryDataSaub>
|
||||
{
|
||||
public TelemetryDataSaubService(
|
||||
IAsbCloudDbContext db,
|
||||
@ -18,18 +18,18 @@ namespace AsbCloudInfrastructure.Services
|
||||
public override TelemetryDataSaub Convert(TelemetryDataSaubDto src)
|
||||
{
|
||||
var entity = src.Adapt<TelemetryDataSaub>();
|
||||
var telemetryUser = cacheTelemetryUsers
|
||||
var telemetryUser = cacheTelemetryUsers?
|
||||
.FirstOrDefault(u => u.IdTelemetry == src.IdTelemetry && (u.Name == src.User || u.Surname == src.User));
|
||||
entity.IdUser = telemetryUser.IdUser;
|
||||
entity.IdUser = telemetryUser?.IdUser;
|
||||
return entity;
|
||||
}
|
||||
|
||||
public override TelemetryDataSaubDto Convert(TelemetryDataSaub src)
|
||||
{
|
||||
var dto = src.Adapt<TelemetryDataSaubDto>();
|
||||
var telemetryUser = cacheTelemetryUsers
|
||||
var telemetryUser = cacheTelemetryUsers?
|
||||
.FirstOrDefault(u => u.IdTelemetry == src.IdTelemetry && u.IdUser == src.IdUser);
|
||||
dto.User = telemetryUser.MakeDisplayName();
|
||||
dto.User = telemetryUser?.MakeDisplayName();
|
||||
return dto;
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ using Mapster;
|
||||
|
||||
namespace AsbCloudInfrastructure.Services
|
||||
{
|
||||
public class TelemetryDataSpinService : TelemetryDataService<AsbCloudApp.Data.TelemetryDataSpinDto, AsbCloudDb.Model.TelemetryDataSpin>
|
||||
public class TelemetryDataSpinService : TelemetryDataBaseService<AsbCloudApp.Data.TelemetryDataSpinDto, AsbCloudDb.Model.TelemetryDataSpin>
|
||||
{
|
||||
public TelemetryDataSpinService(
|
||||
IAsbCloudDbContext db,
|
||||
|
@ -52,7 +52,7 @@ namespace AsbCloudInfrastructure.Services
|
||||
}
|
||||
|
||||
private Telemetry GetOrCreateTelemetryByUid(string uid)
|
||||
=> cacheTelemetry.FirstOrDefault(t => t.RemoteUid == uid, RefreshMode.IfResultEmpty)
|
||||
=> cacheTelemetry.FirstOrDefault(t => t.RemoteUid == uid)
|
||||
?? cacheTelemetry.Insert(new Telemetry { RemoteUid = uid, });
|
||||
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ namespace AsbCloudWebApi.Controllers
|
||||
.ConfigureAwait(false);
|
||||
if (fileInfo is null)
|
||||
return NoContent();
|
||||
var relativePath = fileService.GetFileName(fileInfo);
|
||||
var relativePath = fileService.GetUrl(fileInfo);
|
||||
return PhysicalFile(Path.GetFullPath(relativePath), "application/octet-stream", fileInfo.Name);
|
||||
}
|
||||
}
|
||||
|
@ -157,8 +157,7 @@ namespace AsbCloudWebApi.Controllers
|
||||
if (fileInfo is null)
|
||||
throw new FileNotFoundException();
|
||||
|
||||
// TODO: словарь content typoв
|
||||
var relativePath = fileService.GetFileName(fileInfo);
|
||||
var relativePath = fileService.GetUrl(fileInfo);
|
||||
return PhysicalFile(Path.GetFullPath(relativePath), "application/octet-stream", fileInfo.Name);
|
||||
}
|
||||
catch (FileNotFoundException ex)
|
||||
|
Loading…
Reference in New Issue
Block a user