forked from ddrilling/AsbCloudServer
refact #1
This commit is contained in:
parent
169968da44
commit
3c84648eec
@ -7,6 +7,11 @@ namespace AsbCloudApp.Data
|
||||
/// </summary>
|
||||
public class PlannedTrajectoryDto
|
||||
{
|
||||
/// <summary>
|
||||
/// ИД строки с координатами
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ИД скважины
|
||||
/// </summary>
|
||||
@ -14,7 +19,7 @@ namespace AsbCloudApp.Data
|
||||
/// <summary>
|
||||
/// Дата загрузки
|
||||
/// </summary>
|
||||
public DateTimeOffset Date { get; set; }
|
||||
public DateTimeOffset UpdateDate { get; set; }
|
||||
/// <summary>
|
||||
/// ИД пользователя
|
||||
/// </summary>
|
||||
|
@ -1,30 +1,31 @@
|
||||
using System.IO;
|
||||
|
||||
namespace AsbCloudApp.Services
|
||||
{
|
||||
#nullable enable
|
||||
/// <summary>
|
||||
/// Сервис загрузки и обработки плановой траектории из файла
|
||||
/// </summary>
|
||||
public interface IPlannedTrajectoryImportService
|
||||
{
|
||||
/// <summary>
|
||||
/// шаблон для заполнения плановой траектории
|
||||
/// скачать шаблон для заполнения плановой траектории
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Stream GetTemplateFile();
|
||||
/// <summary>
|
||||
/// загрузить строки плановой траектории в .xlsx
|
||||
/// загрузить текущую плановую траекторию в .xlsx
|
||||
/// </summary>
|
||||
/// <param name="idWell"></param>
|
||||
/// <returns></returns>
|
||||
Stream ExportRows(int idWell);
|
||||
Stream Export(int idWell);
|
||||
/// <summary>
|
||||
/// закгрузить из excel координаты плановой траектории
|
||||
/// импортировать из excel плановую траекторию
|
||||
/// </summary>
|
||||
/// <param name="idWell"></param>
|
||||
/// <param name="idUser"></param>
|
||||
/// <param name="stream"></param>
|
||||
/// <param name="deleteWellOperationsBeforeImport">Очистить старые перед импортом (если файл проходит валидацию)</param>
|
||||
/// <param name="deleteWellOperationsBeforeImport">Очистить старые координаты перед импортом (если файл проходит валидацию)</param>
|
||||
void Import(int idWell, int idUser, Stream stream, bool deleteWellOperationsBeforeImport = false);
|
||||
}
|
||||
#nullable disable
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace AsbCloudApp.Services
|
||||
{
|
||||
#nullable enable
|
||||
/// <summary>
|
||||
/// CRUD для работы с плановой траекторией из клиента
|
||||
/// </summary>
|
||||
@ -17,7 +18,7 @@ namespace AsbCloudApp.Services
|
||||
/// <param name="idWell"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<IEnumerable<PlannedTrajectoryDto>> GetCoordinates(int idWell, CancellationToken token);
|
||||
Task<IEnumerable<PlannedTrajectoryDto>?> GetCoordinatesAsync(int idWell, CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Добавить строки с координатами
|
||||
@ -43,11 +44,12 @@ namespace AsbCloudApp.Services
|
||||
CancellationToken token);
|
||||
|
||||
/// <summary>
|
||||
/// Удалить строку с координатами
|
||||
/// Удалить строки с координатами
|
||||
/// </summary>
|
||||
/// <param name="ids"></param>
|
||||
/// <param name="token"></param>
|
||||
/// <returns></returns>
|
||||
Task<int> DeleteAsync(IEnumerable<int> ids, CancellationToken token);
|
||||
Task<int> DeleteRangeAsync(IEnumerable<int> ids, CancellationToken token);
|
||||
}
|
||||
#nullable disable
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ using System.Linq;
|
||||
|
||||
namespace AsbCloudInfrastructure.Services.PlannedTrajectory
|
||||
{
|
||||
#nullable enable
|
||||
public class PlannedTrajectoryImportService : IPlannedTrajectoryImportService
|
||||
{
|
||||
/*
|
||||
@ -51,7 +52,7 @@ namespace AsbCloudInfrastructure.Services.PlannedTrajectory
|
||||
return stream;
|
||||
}
|
||||
|
||||
public Stream ExportRows(int idWell)
|
||||
public Stream Export(int idWell)
|
||||
{
|
||||
var plannedTrajectorys = db.PlannedTrajectorys
|
||||
.Where(o => o.IdWell == idWell)
|
||||
@ -252,5 +253,6 @@ namespace AsbCloudInfrastructure.Services.PlannedTrajectory
|
||||
return trajectoryRow;
|
||||
}
|
||||
}
|
||||
#nullable disable
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,7 @@ namespace AsbCloudInfrastructure.Services.PlannedTrajectory
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public async Task<int> DeleteAsync(IEnumerable<int> ids, CancellationToken token)
|
||||
public async Task<int> DeleteRangeAsync(IEnumerable<int> ids, CancellationToken token)
|
||||
{
|
||||
var query = db.PlannedTrajectorys.Where(e => ids.Contains(e.Id));
|
||||
db.PlannedTrajectorys.RemoveRange(query);
|
||||
@ -46,16 +46,16 @@ namespace AsbCloudInfrastructure.Services.PlannedTrajectory
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<PlannedTrajectoryDto>?> GetCoordinates(int idWell, CancellationToken token)
|
||||
public async Task<IEnumerable<PlannedTrajectoryDto>?> GetCoordinatesAsync(int idWell, CancellationToken token)
|
||||
{
|
||||
var well = wellService.GetOrDefault(idWell);
|
||||
if (well is null || well.Timezone is null)
|
||||
throw new ArgumentInvalidException("idWell doesn`t exist", nameof(idWell));
|
||||
var query = db.PlannedTrajectorys
|
||||
.Where(x => x.IdWell == idWell);
|
||||
.Where(x => x.IdWell == idWell);
|
||||
var entities = await query
|
||||
.OrderBy(e => e.LoadDate)
|
||||
.ToListAsync(token);
|
||||
.ToListAsync(token);
|
||||
var result = entities
|
||||
.Select(r => Convert(r));
|
||||
return result;
|
||||
|
@ -40,7 +40,7 @@ namespace AsbCloudWebApi.Controllers
|
||||
[Route("template")]
|
||||
[AllowAnonymous]
|
||||
[ProducesResponseType(typeof(PhysicalFileResult), (int)System.Net.HttpStatusCode.OK)]
|
||||
public IActionResult GetTamplate()
|
||||
public IActionResult GetTemplate()
|
||||
{
|
||||
var stream = plannedTrajectoryImportService.GetTemplateFile();
|
||||
var fileName = "ЕЦП_шаблон_файла_плановая_траектория.xlsx";
|
||||
@ -68,7 +68,7 @@ namespace AsbCloudWebApi.Controllers
|
||||
idWell, token).ConfigureAwait(false))
|
||||
return Forbid();
|
||||
|
||||
var stream = plannedTrajectoryImportService.ExportRows(idWell);
|
||||
var stream = plannedTrajectoryImportService.Export(idWell);
|
||||
var fileName = await wellService.GetWellCaptionByIdAsync(idWell, token) + "_plannedTrajectory.xlsx";
|
||||
return File(stream, "application/octet-stream", fileName);
|
||||
}
|
||||
@ -82,7 +82,7 @@ namespace AsbCloudWebApi.Controllers
|
||||
/// <param name="token"> Токен отмены задачи </param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
//[Permission]
|
||||
[Permission]
|
||||
[Route("import/{options}")]
|
||||
public async Task<IActionResult> ImportAsync(int idWell,
|
||||
[FromForm] IFormFileCollection files,
|
||||
@ -145,7 +145,7 @@ namespace AsbCloudWebApi.Controllers
|
||||
idWell, token).ConfigureAwait(false))
|
||||
return Forbid();
|
||||
|
||||
var result = plannedTrajectoryService.GetCoordinates(idWell,token);
|
||||
var result = plannedTrajectoryService.GetCoordinatesAsync(idWell,token);
|
||||
return Ok(result);
|
||||
}
|
||||
|
||||
@ -208,7 +208,7 @@ namespace AsbCloudWebApi.Controllers
|
||||
token).ConfigureAwait(false))
|
||||
return Forbid();
|
||||
|
||||
var result = await plannedTrajectoryService.DeleteAsync(new int[] { idRow }, token)
|
||||
var result = await plannedTrajectoryService.DeleteRangeAsync(new int[] { idRow }, token)
|
||||
.ConfigureAwait(false);
|
||||
|
||||
return Ok(result);
|
||||
|
Loading…
Reference in New Issue
Block a user