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>
|
||||
public abstract class TrajectoryGeoDto
|
||||
public abstract class TrajectoryGeoDto : IId
|
||||
{
|
||||
/// <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