From a726602be8723d074e0f6b8233d4ac3585a3dac1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D1=82=D0=B5=D0=BF=D0=B0=D0=BD=D0=BE=D0=B2=20=D0=94?= =?UTF-8?q?=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Mon, 29 Jan 2024 14:39:53 +0500 Subject: [PATCH] =?UTF-8?q?=D0=90=D0=B1=D1=81=D1=82=D1=80=D0=B0=D0=BA?= =?UTF-8?q?=D1=86=D0=B8=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=B0=D1=80?= =?UTF-8?q?=D1=81=D0=B8=D0=BD=D0=B3=D0=B0=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AsbCloudApp/Data/ParserResultDto.cs | 12 ++++++++ .../Data/Trajectory/TrajectoryGeoDto.cs | 2 +- .../Import/ParserOptionsRequestBase.cs | 17 +++++++++++ .../Import/TrajectoryParserRequest.cs | 12 ++++++++ AsbCloudApp/Services/IParserService.cs | 30 +++++++++++++++++++ 5 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 AsbCloudApp/Data/ParserResultDto.cs create mode 100644 AsbCloudApp/Requests/Import/ParserOptionsRequestBase.cs create mode 100644 AsbCloudApp/Requests/Import/TrajectoryParserRequest.cs create mode 100644 AsbCloudApp/Services/IParserService.cs diff --git a/AsbCloudApp/Data/ParserResultDto.cs b/AsbCloudApp/Data/ParserResultDto.cs new file mode 100644 index 00000000..5b6eca8d --- /dev/null +++ b/AsbCloudApp/Data/ParserResultDto.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; + +namespace AsbCloudApp.Data; + +/// +/// Результат парсинга файла +/// +/// +public class ParserResultDto : ValidationResultDto>> + where TDto : class, IId +{ +} \ No newline at end of file diff --git a/AsbCloudApp/Data/Trajectory/TrajectoryGeoDto.cs b/AsbCloudApp/Data/Trajectory/TrajectoryGeoDto.cs index 47563011..e47a66e8 100644 --- a/AsbCloudApp/Data/Trajectory/TrajectoryGeoDto.cs +++ b/AsbCloudApp/Data/Trajectory/TrajectoryGeoDto.cs @@ -5,7 +5,7 @@ namespace AsbCloudApp.Data.Trajectory /// /// Базовая географическая траектория /// - public abstract class TrajectoryGeoDto + public abstract class TrajectoryGeoDto : IId { /// /// ИД строки с координатами diff --git a/AsbCloudApp/Requests/Import/ParserOptionsRequestBase.cs b/AsbCloudApp/Requests/Import/ParserOptionsRequestBase.cs new file mode 100644 index 00000000..852459ee --- /dev/null +++ b/AsbCloudApp/Requests/Import/ParserOptionsRequestBase.cs @@ -0,0 +1,17 @@ +namespace AsbCloudApp.Requests.Import; + +/// +/// Параметры парсинга +/// +public abstract class ParserOptionsRequestBase +{ + /// + /// Id сервиса для парсинга + /// + public int IdParserService { get; set; } + + /// + /// Название листа в файле Excel + /// + public string SheetName { get; set; } = null!; +} \ No newline at end of file diff --git a/AsbCloudApp/Requests/Import/TrajectoryParserRequest.cs b/AsbCloudApp/Requests/Import/TrajectoryParserRequest.cs new file mode 100644 index 00000000..6a7fedab --- /dev/null +++ b/AsbCloudApp/Requests/Import/TrajectoryParserRequest.cs @@ -0,0 +1,12 @@ +namespace AsbCloudApp.Requests.Import; + +/// +/// Параметры парсинга траекторий +/// +public class TrajectoryParserRequest : ParserOptionsRequestBase +{ + /// + /// Количество строк заголовка + /// + public int HeaderRowsCount { get; set; } +} \ No newline at end of file diff --git a/AsbCloudApp/Services/IParserService.cs b/AsbCloudApp/Services/IParserService.cs new file mode 100644 index 00000000..81177c64 --- /dev/null +++ b/AsbCloudApp/Services/IParserService.cs @@ -0,0 +1,30 @@ +using System.IO; +using AsbCloudApp.Data; +using AsbCloudApp.Requests.Import; + +namespace AsbCloudApp.Services; + +/// +/// Сервис парсинга файлов +/// +/// +/// +public interface IParserService : IParserService + where TDto : class, IId + where TOptions : ParserOptionsRequestBase +{ + /// + /// Распарсить файл + /// + /// + /// + /// + ParserResultDto Parse(Stream file, TOptions options); +} + +/// +/// Сервис парсинга файлов +/// +public interface IParserService +{ +} \ No newline at end of file