@@ -12,7 +12,7 @@ public static class DetailedAvalancheWarningMapper
1212 varsomWarning . ValidFrom ,
1313 varsomWarning . ValidTo ,
1414 ] ,
15- HasEmergency = ! string . IsNullOrWhiteSpace ( varsomWarning . EmergencyWarning ? . ToEmergencyWarning ( langKey ) ) ,
15+ HasEmergency = ! string . IsNullOrWhiteSpace ( varsomWarning . EmergencyWarning ? . ToEmergencyWarning ( langKey , varsomWarning . AvalancheProblems ) ) ,
1616 } ;
1717
1818 public static DetailedAvalancheWarning ToDetailedAvalancheWarning ( this VarsomDetailedAvalancheWarning varsomWarning , string langKey ) => new ( )
@@ -39,16 +39,29 @@ public static class DetailedAvalancheWarningMapper
3939 Propagation = problem . AvalPropagationId ,
4040 } ) . OrderByDescending ( x => x . DangerLevel ) ,
4141 IsTendency = varsomWarning . IsTendency ,
42- EmergencyWarning = varsomWarning . EmergencyWarning ? . ToEmergencyWarning ( langKey )
42+ EmergencyWarning = varsomWarning . EmergencyWarning ? . ToEmergencyWarning ( langKey , varsomWarning . AvalancheProblems )
4343 } ;
4444
45- private static string ? ToEmergencyWarning ( this string emergencyWarning , string langKey )
45+ private static string ? ToEmergencyWarning ( this string emergencyWarning , string langKey , IEnumerable < VarsomAvalancheProblem > ? avalancheProblems )
4646 {
47- var notGivenText = langKey == "1" ? "ikke gitt" : "not given" ;
47+ const string langKeyNorwegian = "1" ;
48+ const string langKeyEnglish = "2" ;
49+ const string notGivenNorwegian = "ikke gitt" ;
50+ const string notGivenEnglish = "not given" ;
4851
49- return ! string . IsNullOrWhiteSpace ( emergencyWarning ) &&
50- ! emergencyWarning . Equals ( notGivenText , StringComparison . CurrentCultureIgnoreCase )
51- ? emergencyWarning
52- : null ;
52+ var hasPersistentWeakLayer = avalancheProblems ? . Any ( problem => problem . AvalancheProblemTypeId == AvalancheProblemType . PersistentWeakLayerSlabAvalanches ) ?? false ;
53+
54+ var persistentWeakLayerWarning = hasPersistentWeakLayer ? langKey == langKeyNorwegian ? "Vedvarende svakt lag" : "Persistent weak layer" : null ;
55+
56+ return ( langKey , emergencyWarning . ToLower ( ) , persistentWeakLayerWarning ) switch
57+ {
58+ ( langKeyNorwegian , notGivenNorwegian , null ) => null ,
59+ ( langKeyEnglish , notGivenEnglish , null ) => null ,
60+ ( langKeyNorwegian , _ , null ) => emergencyWarning ,
61+ ( langKeyEnglish , _ , null ) => emergencyWarning ,
62+ ( langKeyNorwegian , notGivenNorwegian , _ ) => $ "{ persistentWeakLayerWarning } .",
63+ ( langKeyEnglish , notGivenEnglish , _ ) => $ "{ persistentWeakLayerWarning } .",
64+ ( _, _, _) => $ "{ persistentWeakLayerWarning } . { emergencyWarning } .",
65+ } ;
5366 }
5467}
0 commit comments