Небольшой фикс сервиса импорта/экспорта

1. Добавил валидацию режима
2. Поправил валидацию секции
This commit is contained in:
parent fb87ee84bd
commit 98ddf83e0b

View File

@ -181,8 +181,8 @@ public class ProcessMapPlanImportService : IProcessMapPlanImportService
private ProcessMapPlanDto ParseRow(IXLRow row) private ProcessMapPlanDto ParseRow(IXLRow row)
{ {
var wellSectionTypeCaption = GetCellValue<string>(row, columnWellSectionType); var wellSectionTypeCaption = GetCellValue<string>(row, columnWellSectionType).Trim().ToLower();
var modeName = GetCellValue<string>(row, columnMode); var modeName = GetCellValue<string>(row, columnMode).Trim().ToLower();
var depthStart = GetCellValue<double>(row, columnDepthStart); var depthStart = GetCellValue<double>(row, columnDepthStart);
var depthEnd = GetCellValue<double>(row, columnDepthEnd); var depthEnd = GetCellValue<double>(row, columnDepthEnd);
var pressurePlan = GetCellValue<double>(row, columnPressurePlan); var pressurePlan = GetCellValue<double>(row, columnPressurePlan);
@ -199,11 +199,15 @@ public class ProcessMapPlanImportService : IProcessMapPlanImportService
var usageSaub = GetCellValue<double>(row, columnUsageSaub); var usageSaub = GetCellValue<double>(row, columnUsageSaub);
var usageSpin = GetCellValue<double>(row, columnUsageSpin); var usageSpin = GetCellValue<double>(row, columnUsageSpin);
var wellSection = sections.FirstOrDefault(s => s.Caption.Trim() == wellSectionTypeCaption.Trim()) var wellSection = sections.FirstOrDefault(s => s.Caption.Trim().ToLower() == wellSectionTypeCaption)
?? throw new FileFormatException( ?? throw new FileFormatException(
$"Лист {row.Worksheet.Name}. В строке {row.RowNumber()} указана некорректная секция"); $"Лист {row.Worksheet.Name}. В строке {row.RowNumber()} указана некорректная секция");
if (depthStart is < 0 or > 50000) var idMode = GetIdMode(modeName)
?? throw new FileFormatException(
$"Лист {row.Worksheet.Name}. В строке {row.RowNumber()} указан некорректный режим");
if (depthStart is < 0 or > 50000)
throw new FileFormatException( throw new FileFormatException(
$"Лист {row.Worksheet.Name}. В строке {row.RowNumber()} указана некорректная стартовая глубина"); $"Лист {row.Worksheet.Name}. В строке {row.RowNumber()} указана некорректная стартовая глубина");
@ -266,7 +270,7 @@ public class ProcessMapPlanImportService : IProcessMapPlanImportService
return new() return new()
{ {
IdWellSectionType = wellSection.Id, IdWellSectionType = wellSection.Id,
IdMode = GetIdMode(modeName), IdMode = idMode,
DepthStart = depthStart, DepthStart = depthStart,
LastUpdate = DateTime.UtcNow, LastUpdate = DateTime.UtcNow,
DepthEnd = depthEnd, DepthEnd = depthEnd,
@ -316,12 +320,13 @@ public class ProcessMapPlanImportService : IProcessMapPlanImportService
return memoryStream; return memoryStream;
} }
private static int GetIdMode(string modeName) => private static int? GetIdMode(string modeName) =>
modeName switch modeName switch
{ {
"Ротор" => 1, "ручной" => 0,
"Слайд" => 2, "ротор" => 1,
_ => 0 "слайд" => 2,
_ => null
}; };
private static string GetModeCaption(int idMode) private static string GetModeCaption(int idMode)