forked from ddrilling/AsbCloudServer
Абстракции для парсинга файлов
This commit is contained in:
parent
a281bccce1
commit
a726602be8
12
AsbCloudApp/Data/ParserResultDto.cs
Normal file
12
AsbCloudApp/Data/ParserResultDto.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Data;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Результат парсинга файла
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDto"></typeparam>
|
||||||
|
public class ParserResultDto<TDto> : ValidationResultDto<IEnumerable<ValidationResultDto<TDto>>>
|
||||||
|
where TDto : class, IId
|
||||||
|
{
|
||||||
|
}
|
@ -5,7 +5,7 @@ namespace AsbCloudApp.Data.Trajectory
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Базовая географическая траектория
|
/// Базовая географическая траектория
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class TrajectoryGeoDto
|
public abstract class TrajectoryGeoDto : IId
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ИД строки с координатами
|
/// ИД строки с координатами
|
||||||
|
17
AsbCloudApp/Requests/Import/ParserOptionsRequestBase.cs
Normal file
17
AsbCloudApp/Requests/Import/ParserOptionsRequestBase.cs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
namespace AsbCloudApp.Requests.Import;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Параметры парсинга
|
||||||
|
/// </summary>
|
||||||
|
public abstract class ParserOptionsRequestBase
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Id сервиса для парсинга
|
||||||
|
/// </summary>
|
||||||
|
public int IdParserService { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Название листа в файле Excel
|
||||||
|
/// </summary>
|
||||||
|
public string SheetName { get; set; } = null!;
|
||||||
|
}
|
12
AsbCloudApp/Requests/Import/TrajectoryParserRequest.cs
Normal file
12
AsbCloudApp/Requests/Import/TrajectoryParserRequest.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
namespace AsbCloudApp.Requests.Import;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Параметры парсинга траекторий
|
||||||
|
/// </summary>
|
||||||
|
public class TrajectoryParserRequest : ParserOptionsRequestBase
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Количество строк заголовка
|
||||||
|
/// </summary>
|
||||||
|
public int HeaderRowsCount { get; set; }
|
||||||
|
}
|
30
AsbCloudApp/Services/IParserService.cs
Normal file
30
AsbCloudApp/Services/IParserService.cs
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
using System.IO;
|
||||||
|
using AsbCloudApp.Data;
|
||||||
|
using AsbCloudApp.Requests.Import;
|
||||||
|
|
||||||
|
namespace AsbCloudApp.Services;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Сервис парсинга файлов
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="TDto"></typeparam>
|
||||||
|
/// <typeparam name="TOptions"></typeparam>
|
||||||
|
public interface IParserService<TDto, in TOptions> : IParserService
|
||||||
|
where TDto : class, IId
|
||||||
|
where TOptions : ParserOptionsRequestBase
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Распарсить файл
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="file"></param>
|
||||||
|
/// <param name="options"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
ParserResultDto<TDto> Parse(Stream file, TOptions options);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Сервис парсинга файлов
|
||||||
|
/// </summary>
|
||||||
|
public interface IParserService
|
||||||
|
{
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user