forked from ddrilling/AsbCloudServer
44 lines
1.5 KiB
C#
44 lines
1.5 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.IO;
|
||
using System.Linq;
|
||
using AsbCloudApp.Data.ProcessMaps;
|
||
using AsbCloudApp.Data.ProcessMaps.Functions;
|
||
using AsbCloudApp.Repositories;
|
||
using AsbCloudInfrastructure.Services.ExcelServices.Templates;
|
||
using AsbCloudInfrastructure.Services.ExcelServices.Templates.ProcessMapPlanTemplates;
|
||
|
||
namespace AsbCloudInfrastructure.Services.ProcessMapPlan.Parser;
|
||
|
||
public class ProcessMapPlanSubsystemsParser : ProcessMapPlanParser<ProcessMapPlanSubsystemsDto>
|
||
{
|
||
public ProcessMapPlanSubsystemsParser(IWellOperationRepository wellOperationRepository)
|
||
: base(wellOperationRepository)
|
||
{
|
||
}
|
||
|
||
protected override ITemplateParameters TemplateParameters => new ProcessMapPlanSubsystemsTemplate();
|
||
|
||
protected override ProcessMapPlanSubsystemsDto BuildDto(IDictionary<string, object?> row, int rowNumber)
|
||
{
|
||
var dto = base.BuildDto(row, rowNumber);
|
||
|
||
//TODO: при парсинге всех РТК шаблонов этот код повторяется, нужно поправить
|
||
var section = sections.FirstOrDefault(s =>
|
||
string.Equals(s.Caption.Trim(), dto.Section?.Trim(), StringComparison.CurrentCultureIgnoreCase));
|
||
|
||
if (section is null)
|
||
{
|
||
var message = string.Format(XLExtentions.ProblemDetailsTemplate,
|
||
TemplateParameters.SheetName,
|
||
rowNumber,
|
||
TemplateParameters.Cells[nameof(ProcessMapPlanBaseDto.Section)],
|
||
"Указана некорректная секция");
|
||
throw new FileFormatException(message);
|
||
}
|
||
|
||
dto.IdWellSectionType = section.Id;
|
||
|
||
return dto;
|
||
}
|
||
} |