Рефакторинг домена

1. Разделил сервисы парсинга.
2. Выделил интерфейс маркер для доп. параметров парсинга. Данный сервис применяется только для ограничения обощённых параметров.
This commit is contained in:
Степанов Дмитрий 2024-01-31 17:18:02 +05:00
parent a47a5799c1
commit 501ef52938
5 changed files with 32 additions and 41 deletions

View File

@ -1,17 +0,0 @@
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!;
}

View File

@ -1,12 +0,0 @@
namespace AsbCloudApp.Requests.Import;
/// <summary>
/// Параметры парсинга траекторий
/// </summary>
public class TrajectoryParserRequest : ParserOptionsRequestBase
{
/// <summary>
/// Количество строк заголовка
/// </summary>
public int HeaderRowsCount { get; set; }
}

View File

@ -0,0 +1,8 @@
namespace AsbCloudApp.Requests.ParserOptions;
/// <summary>
/// Интерфейс для параметров парсера
/// </summary>
public interface IParserOptionsRequest
{
}

View File

@ -0,0 +1,19 @@
using System.IO;
using AsbCloudApp.Data;
namespace AsbCloudApp.Services.Parser;
/// <summary>
/// Сервис парсинга файлов
/// </summary>
/// <typeparam name="TDto"></typeparam>
public interface IParserService<TDto>
where TDto : class, IId
{
/// <summary>
/// Распарсить файл
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
ParserResultDto<TDto> Parse(Stream file);
}

View File

@ -1,17 +1,17 @@
using System.IO;
using AsbCloudApp.Data;
using AsbCloudApp.Requests.Import;
using AsbCloudApp.Requests.ParserOptions;
namespace AsbCloudApp.Services;
namespace AsbCloudApp.Services.Parser;
/// <summary>
/// Сервис парсинга файлов
/// Сервис парсинга файлов с доп. параметрами
/// </summary>
/// <typeparam name="TDto"></typeparam>
/// <typeparam name="TOptions"></typeparam>
public interface IParserService<TDto, in TOptions> : IParserService
public interface IParserServiceWithOptions<TDto, in TOptions>
where TDto : class, IId
where TOptions : ParserOptionsRequestBase
where TOptions : IParserOptionsRequest
{
/// <summary>
/// Распарсить файл
@ -20,11 +20,4 @@ public interface IParserService<TDto, in TOptions> : IParserService
/// <param name="options"></param>
/// <returns></returns>
ParserResultDto<TDto> Parse(Stream file, TOptions options);
}
/// <summary>
/// Сервис парсинга файлов
/// </summary>
public interface IParserService
{
}