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

39 lines
1.2 KiB
C#

using System;
using AsbCloudApp.Data;
using AsbCloudApp.Data.Trajectory;
using ClosedXML.Excel;
namespace AsbCloudInfrastructure.Services.Trajectory.Parser;
public class TrajectoryFactManualParser : TrajectoryParser<TrajectoryGeoFactDto>
{
protected override string SheetName => "Фактическая траектория";
protected override string TemplateFileName => "TrajectoryFactManualTemplate.xlsx";
public TrajectoryFactManualParser(IServiceProvider serviceProvider)
: base(serviceProvider)
{
}
protected override ValidationResultDto<TrajectoryGeoFactDto> ParseRow(IXLRow row)
{
var trajectoryRow = new TrajectoryGeoFactDto
{
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>(),
Comment = row.Cell(6).GetCellValue<string?>()
};
//TODO: Добавить валидацию модели
var validationResult = new ValidationResultDto<TrajectoryGeoFactDto>
{
Item = trajectoryRow
};
return validationResult;
}
}