@page
@model JobsMedical.Web.Pages.Admin.IngestedModel
@{
ViewData["Title"] = "نتایج جمعآوری";
string P(int n) => JalaliDate.ToPersianDigits(n.ToString());
int C(JobsMedical.Web.Models.RawListingStatus s) => Model.Counts.GetValueOrDefault(s);
string Pill(string key, string label, int count) =>
$"{label} ({P(count)})";
}
نتایج جمعآوری
← صف بررسی — همهی آگهیهای جمعآوریشده و وضعیت هرکدام.
@Html.Raw(Pill("all", "همه", Model.Counts.Values.Sum()))
@Html.Raw(Pill("new", "در صف", C(JobsMedical.Web.Models.RawListingStatus.New)))
@Html.Raw(Pill("flagged", "پرچمخورده", C(JobsMedical.Web.Models.RawListingStatus.Flagged)))
@Html.Raw(Pill("published", "منتشرشده", C(JobsMedical.Web.Models.RawListingStatus.Normalized)))
@Html.Raw(Pill("discarded", "ردشده/اسپم", C(JobsMedical.Web.Models.RawListingStatus.Discarded)))
@P(Model.Total) نتیجه (نمایش حداکثر ۲۰۰ مورد اخیر).
@if (Model.Items.Count == 0)
{
موردی با این فیلتر نیست.
}
else
{
foreach (var r in Model.Items)
{
var (cls, label) = r.Status switch
{
JobsMedical.Web.Models.RawListingStatus.New => ("badge-day", "در صف"),
JobsMedical.Web.Models.RawListingStatus.Flagged => ("badge-type", "پرچمخورده"),
JobsMedical.Web.Models.RawListingStatus.Normalized => ("badge-verified", "منتشر شد"),
_ => ("badge-gender", "رد شد"),
};
@r.SourceChannel
@label
اطمینان @P(r.Confidence)٪
@JalaliDate.ToLongDate(DateOnly.FromDateTime(r.FetchedAt))
@(r.RawText.Length > 320 ? r.RawText.Substring(0,320) + "…" : r.RawText)
@if (!string.IsNullOrEmpty(r.ValidationNotes)) {
⚠ @r.ValidationNotes
}
@if (r.Status == JobsMedical.Web.Models.RawListingStatus.New || r.Status == JobsMedical.Web.Models.RawListingStatus.Flagged)
{
بررسی و انتشار ←
}
else if (r.LinkedShiftId is int sid)
{
مشاهده آگهی منتشرشده
}
else if (r.LinkedTalentId is int tid)
{
مشاهده «آماده به کار» منتشرشده
}
}
}