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