DD.WellWorkover.Cloud/AsbCloudInfrastructure/Services/Trajectory/Parser/TrajectoryPlanParser.cs
Степанов Дмитрий 1b3c06c927 Рефакторинг парсинга
1. Добавлен шаблон для сообщений
2. Поправлен naming у сервисов парсинга траекторий
3. Удалена регистрация зависимостей парсеров траекторий
4. Внутри фабрики добавлено создание отдельного scope. Фикс нейминга констант
2024-02-08 12:50:58 +03:00

40 lines
1.2 KiB
C#

using System;
using AsbCloudApp.Data;
using AsbCloudApp.Data.Trajectory;
using ClosedXML.Excel;
namespace AsbCloudInfrastructure.Services.Trajectory.Parser;
public class TrajectoryPlanParser : TrajectoryParser<TrajectoryGeoPlanDto>
{
protected override string SheetName => "Плановая траектория";
protected override string TemplateFileName => "TrajectoryPlanTemplate.xlsx";
public TrajectoryPlanParser(IServiceProvider serviceProvider)
: base(serviceProvider)
{
}
protected override ValidationResultDto<TrajectoryGeoPlanDto> ParseRow(IXLRow row)
{
var trajectoryRow = new TrajectoryGeoPlanDto
{
WellboreDepth = row.Cell(1).GetCellValue<double>(),
ZenithAngle = row.Cell(2).GetCellValue<double>(),
AzimuthGeo = row.Cell(3).GetCellValue<double>(),
AzimuthMagnetic = row.Cell(4).GetCellValue<double>(),
VerticalDepth = row.Cell(5).GetCellValue<double>(),
Radius = row.Cell(6).GetCellValue<double>(),
Comment = row.Cell(7).GetCellValue<string?>()
};
//TODO: Добавить валидацию модели
var validationResult = new ValidationResultDto<TrajectoryGeoPlanDto>
{
Item = trajectoryRow
};
return validationResult;
}
}