From 2d4ea3a76290d3a6d1df4a9b716ef37a44271430 Mon Sep 17 00:00:00 2001 From: "soroush.asadi" Date: Tue, 23 Jun 2026 13:40:23 +0330 Subject: [PATCH] =?UTF-8?q?Fix=20=C2=AB=D8=A7=D8=B2=20X=20=D8=AA=D8=A7=20?= =?UTF-8?q?=D8=AA=D9=88=D8=A7=D9=81=D9=82=DB=8C=C2=BB=20salary=20display?= =?UTF-8?q?=20when=20only=20the=20minimum=20is=20known?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The pay extractor now fills SalaryMin (e.g. «۳۱ م» -> 31M) but leaves SalaryMax null, which rendered as «از ۳۱,۰۰۰,۰۰۰ تا توافقی ماهانه». Show «از ۳۱,۰۰۰,۰۰۰ تومان ماهانه» (from-only) in that case. Co-Authored-By: Claude Opus 4.8 --- src/JobsMedical.Web/Pages/Jobs/Details.cshtml | 1 + src/JobsMedical.Web/Pages/Shared/_JobCard.cshtml | 1 + 2 files changed, 2 insertions(+) diff --git a/src/JobsMedical.Web/Pages/Jobs/Details.cshtml b/src/JobsMedical.Web/Pages/Jobs/Details.cshtml index 6919cb9..0543565 100644 --- a/src/JobsMedical.Web/Pages/Jobs/Details.cshtml +++ b/src/JobsMedical.Web/Pages/Jobs/Details.cshtml @@ -25,6 +25,7 @@ string salary; if (j.SalaryMin is null && j.SalaryMax is null) salary = "توافقی"; else if (j.SalaryMin == j.SalaryMax) salary = JalaliDate.Toman(j.SalaryMin) + " ماهانه"; + else if (j.SalaryMax is null) salary = "از " + JalaliDate.Toman(j.SalaryMin) + " ماهانه"; // min only — avoid «تا توافقی» else salary = $"از {JalaliDate.ToPersianDigits((j.SalaryMin ?? 0).ToString("#,0"))} تا {JalaliDate.Toman(j.SalaryMax)} ماهانه"; var crumbs = new List { new("خانه", "/"), new("استخدام", "/Jobs") }; if (j.Role is not null) crumbs.Add(new(j.Role.Name, "/استخدام/" + JobsMedical.Web.Services.SeoSlug.Of(j.Role.Name))); diff --git a/src/JobsMedical.Web/Pages/Shared/_JobCard.cshtml b/src/JobsMedical.Web/Pages/Shared/_JobCard.cshtml index 7647acd..b0651e7 100644 --- a/src/JobsMedical.Web/Pages/Shared/_JobCard.cshtml +++ b/src/JobsMedical.Web/Pages/Shared/_JobCard.cshtml @@ -10,6 +10,7 @@ string salary; if (Model.SalaryMin is null && Model.SalaryMax is null) salary = "توافقی"; else if (Model.SalaryMin == Model.SalaryMax) salary = JalaliDate.Toman(Model.SalaryMin) + " ماهانه"; + else if (Model.SalaryMax is null) salary = "از " + JalaliDate.Toman(Model.SalaryMin) + " ماهانه"; // min only — avoid «تا توافقی» else salary = $"از {JalaliDate.ToPersianDigits((Model.SalaryMin ?? 0).ToString("#,0"))} تا {JalaliDate.Toman(Model.SalaryMax)} ماهانه"; var q = ViewData["q"] as string; }