diff --git a/src/RevitDeclarations/Models/UtpCalculator.cs b/src/RevitDeclarations/Models/UtpCalculator.cs index 1d2545cd0..64a3f4bd2 100644 --- a/src/RevitDeclarations/Models/UtpCalculator.cs +++ b/src/RevitDeclarations/Models/UtpCalculator.cs @@ -5,7 +5,6 @@ using Autodesk.Revit.DB; using dosymep.SimpleServices; -using dosymep.WPF.Extensions; using dosymep.Revit; using RevitDeclarations.ViewModels; @@ -28,10 +27,10 @@ internal class UtpCalculator { private readonly bool _hasBannedNames; private readonly IEnumerable _roomsWithBathFamily; - private const string _utpYes = "Да"; - private const string _utpNo = "Нет"; - private const string _utpNamesError = "Ошибка имен помещений"; - private const string _utpNullAreasError = "Ошибка нулевых площадей"; + private readonly string _utpYes; + private readonly string _utpNo; + private readonly string _utpNamesError; + private readonly string _utpNullAreasError; public UtpCalculator(ApartmentsProject project, DeclarationSettings settings, ILocalizationService localizationService) { _project = project; @@ -45,6 +44,11 @@ public UtpCalculator(ApartmentsProject project, DeclarationSettings settings, IL _priorities = _settings.PrioritiesConfig; _roomConnectionAnalyzer = new RoomConnectionAnalyzer(project, _priorities); + + _utpYes = localizationService.GetLocalizedString("UtpCalculator.ValueYes"); + _utpNo = localizationService.GetLocalizedString("UtpCalculator.ValueNo"); + _utpNamesError = localizationService.GetLocalizedString("UtpCalculator.ErrorRoomNames"); + _utpNullAreasError = localizationService.GetLocalizedString("UtpCalculator.ErrorNullAreas"); } public void CalculateRoomsForUtp() { @@ -52,18 +56,18 @@ public void CalculateRoomsForUtp() { } public IReadOnlyCollection CheckProjectForUtp() { - var areaErrorListVM = new WarningViewModel(_localizationService) { + var areaErrorListVm = new WarningViewModel(_localizationService) { WarningType = _localizationService.GetLocalizedString("WarningWindow.Warning"), Description = _localizationService.GetLocalizedString("WarningWindow.NullAreas"), DocumentName = _project.Document.Name }; if(_hasNullAreas) { - areaErrorListVM.Elements.Add(new WarningElementViewModel(_project.Document.Name, + areaErrorListVm.Elements.Add(new WarningElementViewModel(_project.Document.Name, _localizationService.GetLocalizedString("WarningWindow.NullAreasInfo"))); } - var namesErrorListVM = new WarningViewModel(_localizationService) { + var namesErrorListVm = new WarningViewModel(_localizationService) { WarningType = _localizationService.GetLocalizedString("WarningWindow.Warning"), Description = _localizationService.GetLocalizedString("WarningsWindow.RoomNameErrors"), DocumentName = _project.Document.Name @@ -72,22 +76,22 @@ public IReadOnlyCollection CheckProjectForUtp() { if(_hasBannedNames) { string names = string.Join(",", GetBannedUtpRoomNames()); - namesErrorListVM.Elements.Add(new WarningElementViewModel(_project.Document.Name, + namesErrorListVm.Elements.Add(new WarningElementViewModel(_project.Document.Name, _localizationService.GetLocalizedString("WarningsWindow.RoomNameErrorsInfo", names))); } - var bathesErrorListVM = new WarningViewModel(_localizationService) { + var bathesErrorListVm = new WarningViewModel(_localizationService) { WarningType = _localizationService.GetLocalizedString("WarningWindow.Warning"), Description = _localizationService.GetLocalizedString("WarningsWindow.BathErrors"), DocumentName = _project.Document.Name }; if(_project.GetBathInstances().Count == 0) { - bathesErrorListVM.Elements.Add(new WarningElementViewModel(_project.Document.Name, + bathesErrorListVm.Elements.Add(new WarningElementViewModel(_project.Document.Name, _localizationService.GetLocalizedString("WarningsWindow.BathErrorsInfo"))); } - return [areaErrorListVM, namesErrorListVM, bathesErrorListVM]; + return [areaErrorListVm, namesErrorListVm, bathesErrorListVm]; } // УТП Хайфлет. @@ -104,7 +108,7 @@ public string CalculateHighflat(Apartment apartment) { // УТП Две ванны. // В квартире две и более ванны (или душевые) в разных помещениях санузлов. - // Помещения санузлов, которые относятся к мастер-спальням не учитываются. + // Помещения санузлов, которые относятся к мастер-спальням, не учитываются. public string CalculateTwoBathes(Apartment apartment) { if(_hasBannedNames) { return _utpNamesError; @@ -179,16 +183,15 @@ .. apartment.GetRoomsByPrior(_priorities.Loggia), var summerRevitRooms = summerRooms.Select(x => x.RevitRoom).ToList(); return summerRooms.Any() - ? ContourChecker - .CheckAnyRoomSizes(summerRevitRooms, _settings.AccuracyForArea, 0, _minBalconyDepth) - .GetDescription() + ? GetLocalizedDescription(ContourChecker + .CheckAnyRoomSizes(summerRevitRooms, _settings.AccuracyForArea, 0, _minBalconyDepth)) : _utpNo; } // УТП Гардеробная. // Наличие в квартире минимум одного помещения с именем "Гардеробная". // Одна сторона помещения должна быть не менее 1000 мм, площадь от 1,8 м2. - // Помещения, которые связаны дверью с жилой комнатой не учитываются. + // Помещения, которые связаны дверью с жилой комнатой, не учитываются. public string CalculatePantry(Apartment apartment) { if(_hasNullAreas) { return _utpNullAreasError; @@ -205,9 +208,8 @@ public string CalculatePantry(Apartment apartment) { .ToList(); return pantriesWithoutBedrooms.Any() - ? ContourChecker - .CheckAnyRoomSizes(pantriesWithoutBedrooms, _settings.AccuracyForArea, _minPantryDepth) - .GetDescription() + ? GetLocalizedDescription(ContourChecker + .CheckAnyRoomSizes(pantriesWithoutBedrooms, _settings.AccuracyForArea, _minPantryDepth)) : _utpNo; } @@ -250,12 +252,15 @@ .. apartment.GetRoomsByPrior(_priorities.Loggia), return hasBalconyWithoutGlazing ? _utpYes : _utpNo; } + + private string GetLocalizedDescription(ContourCheckEnum contourCheckEnum) { + return _localizationService.GetLocalizedString($"UtpCalculator.ContourCheckEnum.{contourCheckEnum}"); + } private bool CheckUtpNullAreas() { return _project .Rooms - .Where(x => x.AreaRevit < 0.1) - .Any(); + .Any(x => x.AreaRevit < 0.1); } private IEnumerable GetBannedUtpRoomNames() { diff --git a/src/RevitDeclarations/assets/localization/Language.en-US.xaml b/src/RevitDeclarations/assets/localization/Language.en-US.xaml index 1ca7adc03..f93bb77f9 100644 --- a/src/RevitDeclarations/assets/localization/Language.en-US.xaml +++ b/src/RevitDeclarations/assets/localization/Language.en-US.xaml @@ -273,4 +273,15 @@ Numeric parameter whose value is output to the column with the room area without coefficient. Numeric parameter whose value is output to the column with the room area with coefficient. + + Yes + No + Room name error + Zero-area error + + Contour error + Yes (verify) + Yes + No (verify) + No \ No newline at end of file diff --git a/src/RevitDeclarations/assets/localization/Language.ru-RU.xaml b/src/RevitDeclarations/assets/localization/Language.ru-RU.xaml index c11c5e034..13a7527ff 100644 --- a/src/RevitDeclarations/assets/localization/Language.ru-RU.xaml +++ b/src/RevitDeclarations/assets/localization/Language.ru-RU.xaml @@ -273,4 +273,15 @@ Числовой параметр, значение которого выводится в столбец с площадью помещения без коэффициента. Числовой параметр, значение которого выводится в столбец с площадью помещения с коэффициентом. + + Да + Нет + Ошибка имен помещений + Ошибка нулевых площадей + + Ошибка контура + Да (проверить) + Да + Нет (проверить) + Нет \ No newline at end of file