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