ids) => _db.Shifts
- .Include(s => s.Facility).ThenInclude(f => f.City)
- .Include(s => s.Facility).ThenInclude(f => f.District)
- .Include(s => s.Role)
- .Where(s => ids.Contains(s.Id)).ToListAsync();
+ public IActionResult OnGet() => RedirectToPage("/Me/Index");
}
diff --git a/src/JobsMedical.Web/Pages/Admin/Review.cshtml b/src/JobsMedical.Web/Pages/Admin/Review.cshtml
index 86dc9ec..b1f06e2 100644
--- a/src/JobsMedical.Web/Pages/Admin/Review.cshtml
+++ b/src/JobsMedical.Web/Pages/Admin/Review.cshtml
@@ -63,6 +63,15 @@
+
+
+
+
+
diff --git a/src/JobsMedical.Web/Pages/Admin/Review.cshtml.cs b/src/JobsMedical.Web/Pages/Admin/Review.cshtml.cs
index 7d226d2..c2e5e55 100644
--- a/src/JobsMedical.Web/Pages/Admin/Review.cshtml.cs
+++ b/src/JobsMedical.Web/Pages/Admin/Review.cshtml.cs
@@ -38,6 +38,7 @@ public class ReviewModel : PageModel
[BindProperty] public long? PayAmount { get; set; }
[BindProperty] public int? SharePercent { get; set; }
[BindProperty] public bool Negotiable { get; set; }
+ [BindProperty] public Gender GenderRequirement { get; set; }
// Job fields
[BindProperty] public string? Title { get; set; }
[BindProperty] public EmploymentType EmploymentType { get; set; }
@@ -62,6 +63,7 @@ public class ReviewModel : PageModel
ShiftDate = DateOnly.FromDateTime(DateTime.UtcNow).AddDays(1);
Negotiable = Parsed.PayNegotiable;
SharePercent = Parsed.SharePercent;
+ GenderRequirement = Parsed.Gender;
if (Parsed.PayAmount is not null) { PayAmount = Parsed.PayAmount; SalaryMin = Parsed.PayAmount; }
Description = Raw.RawText;
Title = Parsed.RoleName is not null ? $"استخدام {Parsed.RoleName}" : "موقعیت استخدامی";
@@ -90,6 +92,7 @@ public class ReviewModel : PageModel
: (PayAmount is null && SharePercent is not null ? PayType.Percentage : PayType.PerShift),
PayAmount = Negotiable ? null : PayAmount,
SharePercent = Negotiable ? null : SharePercent,
+ GenderRequirement = GenderRequirement,
Status = ShiftStatus.Open,
Source = ShiftSource.Aggregated,
SourceUrl = Raw.SourceUrl,
@@ -109,6 +112,7 @@ public class ReviewModel : PageModel
EmploymentType = EmploymentType,
SalaryMin = Negotiable ? null : SalaryMin,
SalaryMax = Negotiable ? null : SalaryMax,
+ GenderRequirement = GenderRequirement,
Description = Description,
Status = ShiftStatus.Open,
Source = ShiftSource.Aggregated,
diff --git a/src/JobsMedical.Web/Pages/Employer/PostJob.cshtml b/src/JobsMedical.Web/Pages/Employer/PostJob.cshtml
index c3bdb8e..0ad9aea 100644
--- a/src/JobsMedical.Web/Pages/Employer/PostJob.cshtml
+++ b/src/JobsMedical.Web/Pages/Employer/PostJob.cshtml
@@ -43,6 +43,14 @@
}
+
+
+
+
+
+
+
+
diff --git a/src/JobsMedical.Web/Pages/Employer/PostShift.cshtml.cs b/src/JobsMedical.Web/Pages/Employer/PostShift.cshtml.cs
index ac5901e..d8a1a39 100644
--- a/src/JobsMedical.Web/Pages/Employer/PostShift.cshtml.cs
+++ b/src/JobsMedical.Web/Pages/Employer/PostShift.cshtml.cs
@@ -27,6 +27,7 @@ public class PostShiftModel : PageModel
[BindProperty] public long? PayAmount { get; set; }
[BindProperty] public int? SharePercent { get; set; } // سهم درآمد (٪)
[BindProperty] public bool Negotiable { get; set; }
+ [BindProperty] public Gender GenderRequirement { get; set; }
[BindProperty] public string? Description { get; set; }
public async Task OnGetAsync()
@@ -60,6 +61,7 @@ public class PostShiftModel : PageModel
: (PayAmount is null && SharePercent is not null ? PayType.Percentage : PayType.PerShift),
PayAmount = Negotiable ? null : PayAmount,
SharePercent = Negotiable ? null : SharePercent,
+ GenderRequirement = GenderRequirement,
Status = ShiftStatus.Open,
Source = ShiftSource.Direct, // posted directly by the facility
});
diff --git a/src/JobsMedical.Web/Pages/Jobs/Details.cshtml b/src/JobsMedical.Web/Pages/Jobs/Details.cshtml
index 0f0702e..d275443 100644
--- a/src/JobsMedical.Web/Pages/Jobs/Details.cshtml
+++ b/src/JobsMedical.Web/Pages/Jobs/Details.cshtml
@@ -50,6 +50,10 @@
مشخصات موقعیت
نوع همکاری@empLabel
نقش@j.Role?.Name
+ @if (j.GenderRequirement != Gender.Any)
+ {
+
جنسیت@JalaliDate.GenderLabel(j.GenderRequirement)
+ }
حقوق ماهانه@salary
diff --git a/src/JobsMedical.Web/Pages/Jobs/Index.cshtml b/src/JobsMedical.Web/Pages/Jobs/Index.cshtml
index dcfc715..9d5b7ca 100644
--- a/src/JobsMedical.Web/Pages/Jobs/Index.cshtml
+++ b/src/JobsMedical.Web/Pages/Jobs/Index.cshtml
@@ -65,6 +65,14 @@
}
+
+
+
+
+
+
+
+
برای حذف آگهیهایی که با جنسیت شما همخوان نیستند.
+
📍 @Model.Facility?.City?.Name@(Model.Facility?.District is not null ? "، " + Model.Facility.District.Name : "")
diff --git a/src/JobsMedical.Web/Pages/Shared/_Layout.cshtml b/src/JobsMedical.Web/Pages/Shared/_Layout.cshtml
index eae48dc..1232571 100644
--- a/src/JobsMedical.Web/Pages/Shared/_Layout.cshtml
+++ b/src/JobsMedical.Web/Pages/Shared/_Layout.cshtml
@@ -39,7 +39,7 @@
{
پنل کارفرما
}
- پروفایل
+ پنل کارجو
diff --git a/src/JobsMedical.Web/Pages/Shared/_RecommendationCard.cshtml b/src/JobsMedical.Web/Pages/Shared/_RecommendationCard.cshtml
index fbe1448..640aa23 100644
--- a/src/JobsMedical.Web/Pages/Shared/_RecommendationCard.cshtml
+++ b/src/JobsMedical.Web/Pages/Shared/_RecommendationCard.cshtml
@@ -19,6 +19,10 @@
{
@s.Role.Name
}
+ @if (s.GenderRequirement != Gender.Any)
+ {
+ @JalaliDate.GenderLabel(s.GenderRequirement)
+ }
📍 @s.Facility?.City?.Name
📅 @JalaliDate.WeekDayName(s.Date)، @JalaliDate.ToLongDate(s.Date) — 🕐 @JalaliDate.Time(s.StartTime)
diff --git a/src/JobsMedical.Web/Pages/Shared/_ShiftCard.cshtml b/src/JobsMedical.Web/Pages/Shared/_ShiftCard.cshtml
index 0bcade4..9914c3d 100644
--- a/src/JobsMedical.Web/Pages/Shared/_ShiftCard.cshtml
+++ b/src/JobsMedical.Web/Pages/Shared/_ShiftCard.cshtml
@@ -18,6 +18,10 @@
{
@Model.Role.Name
}
+ @if (Model.GenderRequirement != Gender.Any)
+ {
+ @JalaliDate.GenderLabel(Model.GenderRequirement)
+ }
📍 @Model.Facility?.City?.Name@(Model.Facility?.District is not null ? "، " + Model.Facility.District.Name : "")
@if (Model.Facility?.IsVerified == true)
{
diff --git a/src/JobsMedical.Web/Pages/Shifts/Details.cshtml b/src/JobsMedical.Web/Pages/Shifts/Details.cshtml
index 3897996..de671c1 100644
--- a/src/JobsMedical.Web/Pages/Shifts/Details.cshtml
+++ b/src/JobsMedical.Web/Pages/Shifts/Details.cshtml
@@ -49,6 +49,10 @@
ساعت@JalaliDate.Time(s.StartTime) تا @JalaliDate.Time(s.EndTime)
مدت@JalaliDate.ToPersianDigits(s.DurationHours.ToString("0.#")) ساعت
نقش مورد نیاز@(s.Role?.Name ?? s.SpecialtyRequired)
+ @if (s.GenderRequirement != Gender.Any)
+ {
+ جنسیت@JalaliDate.GenderLabel(s.GenderRequirement)
+ }
پرداخت@JalaliDate.PayLabel(s.PayType, s.PayAmount, s.SharePercent)
بازه ساعت کاری در شبانهروز
diff --git a/src/JobsMedical.Web/Pages/Shifts/Index.cshtml b/src/JobsMedical.Web/Pages/Shifts/Index.cshtml
index 5c2a2be..ca28a2a 100644
--- a/src/JobsMedical.Web/Pages/Shifts/Index.cshtml
+++ b/src/JobsMedical.Web/Pages/Shifts/Index.cshtml
@@ -78,6 +78,14 @@
}
+
+
+
+